WP_Query with custom post_type and cat retrieving unwanted posts with the custom posts

Assuming that you have a CPT with slug projets and you’ve registered built-in categories for that CPT, it all looks correct.

So there are two possibilities, that I would check:

  1. Typos – maybe you misstyped your CPT name somewhere in your code.
  2. pre_get_posts filter is modifying your query and changing its behavior (it’s pretty common if you write pre_get_posts and don’t pay enough attention to conditions inside of it).