title: Sequelize receiving empty array while filtering with association at top level
body: <p>Sequelize version: <em>6.6.2</em></p>
  <h2>Context</h2>
  <p>I have 3 models: <strong>User</strong>, <strong>Food</strong>, <strong>UserFoods</strong>. They have a Super Many-to-Many relationship between them using the <a href="https://sequelize.org/master/manual/advanced-many-to-many.html#through-tables-versus-normal-tables-and-the--quot-super-many-to-many-association-quot-" rel="nofollow noreferrer">documentation</a>.</p>
  <pre class="lang-js prettyprint-override"><code>const User = sequelize.define('user', {
    username: DataTypes.STRING,
  });
  
  const Food = sequelize.define('food', {
    name: DataTypes.STRING
  });
  
  const UserFoods = sequelize.define('user_foods', {
    id: {
      type: DataTypes.INTEGER,
      primaryKey: true,
      autoIncrement: true,
      allowNull: false
    },
    status: DataTypes.INTEGER,
  });
  
  User.belongsToMany(Food, { through: UserFoods });
  Food.belongsToMany(User, { through: UserFoods });
  User.hasMany(UserFoods);
  UserFoods.belongsTo(User);
  Food.hasMany(UserFoods);
  UserFoods.belongsTo(Food);
  </code></pre>
  <p>The <code>status</code> column in UserFoods will receive a number when adding a food to a user that will be used to create the user food lists (favorite, good, suck...).</p>
  <p>This way I can query like this:</p>
  <pre class="lang-js prettyprint-override"><code>const foods = await UserFoods.findAll({
    where: { userId: req.userId, status: 1 },
    include: Food,
  });
  </code></pre>
  <h2>The Problem</h2>
  <p>Now I'm trying to query all Foods that <strong>are not</strong> in any of the user lists. Im doing the following:</p>
  <pre class="lang-js prettyprint-override"><code>const foods = await Food.findAll({
    where: {
      &quot;$user_foods.userId$&quot;: { [Op.not]: req.userId },
    },
    include: {
      model: UserFoods,
      duplicating: false,
    },
    limit: 10,
  });
  
  // output foods: [] 
  </code></pre>
  <p>Why am I receiving an empty array?</p>
  <p>If I change the <code>Op.not</code> to <code>Op.eq</code> it will return all the foods that belongs to that user, so why doesn't work the other way around?</p>