Questa query ti fa l'alberatura. Partendo da questa poi puoi eseguire lo split tramite php.
Ti può essere d'aiuto?
codice:
SELECT
C1.`categoria`
,C2.`categoria`
,C3.`categoria`
,C4.`categoria`
,C5.`categoria`
FROM categorie AS C1
LEFT JOIN categorie AS C2 ON C1.id = C2.`id_categoria`
LEFT JOIN categorie AS C3 ON C2.id = C3.`id_categoria`
LEFT JOIN categorie AS C4 ON C3.id = C4.`id_categoria`
LEFT JOIN categorie AS C5 ON C4.id = C5.`id_categoria`
WHERE
C1.`id_categoria` = 0
ORDER BY
C1.`categoria`
,C2.`categoria`
,C3.`categoria`
,C4.`categoria`
,C5.`categoria`
categoria categoria categoria categoria categoria
nome_categoria_1 nome_sottocategoria_1 nome_sottosottocategoria_3 NULL NULL
nome_categoria_1 nome_sottocategoria_2 NULL NULL NULL
nome_categoria_2 NULL NULL NULL NULL