Je reviens assez tard sur la question, merci à ceux qui on répondu 
Mais j'ai trouvé une solution qui permet de le faire en une simple requête :
SELECT Concat(If(isnull(p2.name),'',Concat('/',p2.name)),
'/',p1.name)
as `gen_order`, p2.name as `Parent name`, p1.*
FROM table p1 LEFT JOIN table p2 on p1.parent_id = p2.id order by `gen_order`