scusa eh, ma allora che c'entrano i prodotti nella join?
la tabella delle categorie com'è strutturata?
?codice:categoria id - nome - parent_id
cioè: come hai impostato per avere una "categoria padre" e tante "categorie figlio" (sub categorie) nel database?