Non è possibile in puro SQL.
SQL è progettato per funzionare con dati relazionali e non con alberi (dati gerarchici).
Puoi rappresentare un albero in uno schema SQL, tuttavia non sarai in grado di generare un albero come intendi fare.
L'unico modo per farlo è ottenere un risultato utilizzabile facendo tanti join quanti sono i livelli che stai memorizzando.
Il tuo schema attuale potrebbe supportare più livelli, tuttavia sarà molto difficile gestire più di uno o due livelli.
Potresti essere interessato a Modello di set nidificato o Gestione dei dati gerarchici in mysql
Ci sono alcune implementazioni del Nested Set come questo lavorare con Dottrina 2