Проблемът с търсения от вас резултат е, че Cake няма да ви върне изчистен резултатен масив, ако използвате условия за свързаните си модели.
Това се случва, защото Cake ще използва тези условия само за свързания ви модел и ще ви върне резултатите, като условията са верни за свързаните ви модели.
Ако искате да получите обратно продукти само с конкретна категория, трябва да направите заявка чрез модела на категорията, тъй като това ви дава възможност да използвате условията на вашите продукти. Това може да изглежда така:
$this->Category->find('all', array('conditions' => array('Category.id' => 2));
Това ще ви върне само желаната категория и свързаните с нея продукти. Това обаче не е много задоволително, ако искате списък, защото ще трябва ръчно да извършите преобразуването.
Бих предпочел да разгледам Linkable Plugin което би трябвало да ви даде точно желаната от вас функционалност, тъй като разширява Cake при използването на съединения, както направихте във вашата заявка. Това прави възможно получаването на резултати с условия за свързаните ви модели.