MySQL no admite consultas recursivas, por lo que si un niño puede tener hijos, no hay forma de formular dicha consulta. De lo contrario, esta consulta debería devolver las filas en el orden que necesita:
SELECT * FROM tablename
ORDER BY
CASE WHEN parent_id=0 THEN id ELSE parent_id END,
id
Consulte fiddle aquí
. El truco es ordenar filas por id
si es un padre o por parent_id
si es un niño, y luego por id
.