Não é possível em SQL puro.
O SQL destina-se a trabalhar com dados relacionais e não com árvores (dados hierárquicos).
Você pode representar uma árvore em um esquema SQL, porém não poderá resultar em uma árvore como pretende fazer.
A única maneira de fazer isso é obter um resultado utilizável, fazendo tantas associações quanto o nível que você está armazenando.
Seu esquema atual pode suportar vários níveis, no entanto, será muito difícil gerenciar mais de um ou dois níveis.
Você pode estar interessado em Modelo de conjunto aninhado ou Gerenciando dados hierárquicos no mysql
Existem algumas implementações do conjunto aninhado como este trabalhar com Doutrina 2