seriamente, chi l'ha fatto non ha nemmeno quella che si può definire una conoscenza di base dei database relazionali...

Per evitare di fare 120000 query ti conviene caricare in una botta solo tutti i dati, o quanto meno, la maggior parte possibile.

Per il resto devi solo printare prima le categorie con parent = null poi ricorsivamente chiami una funzione come quella nel thread che ti ho postato che controlla Prima tutte le categorie con parent = all'id della categoria passata, chiamandola funzione ricorsiva, poi tutte le immagini con categoria = al nome della categoria passata, chiamando la funzione ricorsiva.

Spero di essere stato chiaro