Yep. El problema ya es de PHP, por cuanto la creación del árbol
es asunto de PHP y no de la base.
De todos modos te comento: El principio aquí es que la raíz del árbol es aquel registro que tiene padre NULL, y a partir de ello debes establecer el punto de corte de la función. Es el mismo principio que se usa en los cursos de Oracle para un caso ejemplo con base de pruebas y entrenamiento de Oracle 10g, para determinar la estructura de empleados de un conjunto de departamentos, de modo que lo puedes considerar un estandar en este tipo de modelos.
Yo que tu, buscaría contruir una función recursiva que me diese este resultado partiendo de una tabla.