Problemet med ditt önskade resultat är att Cake inte kommer att ge dig tillbaka en avskalad resultatuppsättning om du använder villkor på dina relaterade modeller.
Detta händer eftersom Cake endast kommer att använda dessa villkor på din relaterade modell och ge dig tillbaka resultaten med villkor som är sanna på dina relaterade modeller.
Om du vill få tillbaka produkter med endast specifik Kategori måste du fråga genom Kategorimodellen eftersom detta ger dig möjlighet att använda villkoren för dina Produkter. Det här kan se ut ungefär så här:
$this->Category->find('all', array('conditions' => array('Category.id' => 2));
Detta ger dig bara tillbaka den önskade kategorin och dess associerade produkter. Detta är dock inte särskilt tillfredsställande om du vill ha en lista, eftersom du måste göra omvandlingen manuellt.
Jag skulle hellre ta en titt på Linkable Plugin vilket borde ge dig exakt den önskade funktionaliteten eftersom det utökar Cake i att använda joins som du gjorde i din fråga. Detta gör det möjligt att få resultat med förhållanden på dina relaterade modeller.