Io userei due query diverse: una principale che ti restituisca solo le categorie, e poi per ogni categoria ne fai un'altra che ti dia solo le sotto categorie di quella categoria...

Ciao!