Filter by relation notIn returns results that can contains the unwanted field
### Node Version

20.10.0

### NPM/Yarn/PNPM Version

10.2.5

### Strapi Version

5.9

### Operating System

Linux (Debian/Ubuntu)

### Database

MySQL

### Javascript or Typescript

Javascript

### Reproduction URL

_No response_

### Bug Description

When fetching collection type by a notin operator on a relationnal documentId field (many to many) with graphql result can present the field if they have several relations and one that is not in the notin array. 

```graphql
query Recipes($filters: RecipeFiltersInput, $locale: I18NLocaleCode) {
  recipes(filters: $filters, locale: $locale) {
    documentId
    title
    allergens {
      name
      documentId
    }
  }
}
```

variables: 

```js
{
  "filters": {
    "allergens": {
      "documentId": {
        "notIn": ["d54atxm6qutd6i9jj4ldvlr4"]
      }
    }
  },
  "locale": "fr"
}
```

result: 

```js
{
  "data": {
    "recipes": [
      {
        "documentId": "vmofu4xoagclzd4995m4cci5",
        "title": "Test1",
        "allergens": [
          {
            "name": "allergen2",
            "documentId": "ynwees3pjdrw0kztrtm0px0v"
          }
        ]
      },
      {
        "documentId": "zph962ax2a1fn9r8uqm0eh4f",
        "title": "Test2",
        "allergens": [
          {
            "name": "allergen1",
            "documentId": "d54atxm6qutd6i9jj4ldvlr4"
          },
          {
            "name": "allergen2",
            "documentId": "ynwees3pjdrw0kztrtm0px0v"
          }
        ]
      }
    ]
  }
}
```
In the second item we can see that it contains the allergen with the unwanted id. It makes hard to perform request that should exclude a category for exemple. And seem to be a pretty basic use case of a CMS.

### Steps to Reproduce

1. Create a collection type A
2. Create an other one B
3. Create a many to many relation between the two
4. set several B to an A
5. Fetch some A with a notIn filter on a field of B
6. You will receive A items that can contain some B that you don't want

### Expected Behavior

Maybe it is the desired comportment but we should have a filter method that exclude from results every occurence of the notIn array. 

### Logs
_No response_

### Code Snippets

_No response_

### Media

_No response_

### Additional information

_No response_

### Confirmation Checklist

- [x] I have checked the existing [issues](https://github.com/strapi/strapi/issues) for duplicates.
- [x] I agree to follow this project's [Code of Conduct](https://github.com/strapi/strapi/blob/develop/CODE_OF_CONDUCT.md).