Como ves, lo más fácil no siempre es lo adecuado.
Respecto a lo que obtienes del var_dump()... no entiendo porque el primer elemento es un array con dos elementos y uno de ellos está vacío.
Código:
array(2) {
[0]=> array(2) {
[0]=> array(0) { }
[1]=> string(6) "Inicio"
}
[1]=> string(15) "Portasahumerios" }
Tal vez solo falta un if para evitar agregar algo si $row['name'] es una cadena vacía; de cualqueir forma, la lógica sigue siendo incorrecta, porque supongo que tendrás una telaraña si vas a niveles mas extensos.
Esto muy aparte de que no es recomendable tener consultas así en funciones recursivas; puede ser útil cuando tienes pocos visitantes, pero se convertirá en un verdadero dolor de cabeza cuando las peticiones se incrementen.
Tal vez te serviría leer esto:
http://www.forosdelweb.com/f18/lista...2/#post3181868