Your whereNotIn() method is actually querying that those ids are not present, from the Games table.
In order to accomplish what you're trying to get, you need to query "all the games, that have a Team id different from 23 and 24". When you think about that, the query you get is quite different:
$team_ids_to_exclude = $request->arr_team_ids;
Game::query()
->with('gameTeams.teams')
->whereHas('gameTeams', function($query) use ($team_ids_to_exclude){
$query->whereNotIn('team_id', $team_ids_to_exclude);
})
->get();
This should probably do the trick.