devi fare una cosa tipo questa
SELECT *, COUNT(*) as numero FROM categorie as c LEFT JOIN prodotti as p ON p.id_cat=c.id GROUP BY categoria

chiaramente dipende dalla struttura del tuo database