In order to find games that have both participant #1 and participant #2, I'm thinking you'll need to do a manual join:
$this->GamesParticipant->find('first',
array(
'conditions' => array('participant_id' => 1),
'joins' => array(
array(
'table' => 'games_participants',
'type' => 'inner',
'alias' => 'GamesParticipant2',
'conditions' => array(
'GamesParticipant.game_id = GamesParticipant2.game_id',
'GamesParticipant2.participant_id' => 2
)
)
)
));