SELECT 
  pfv.feature_id, 
  pfv.product_id, 
  pfv.variant_id, 
  gp.group_id 
FROM 
  q_product_features_values AS pfv 
  INNER JOIN q_product_variation_group_products AS gp ON pfv.product_id = gp.product_id 
  INNER JOIN q_product_variation_group_features AS gpf ON gpf.group_id = gp.group_id 
  AND gpf.feature_id = pfv.feature_id 
WHERE 
  pfv.lang_code = 'en' 
  AND gp.group_id IN (90, 89)

Query time 0.00045

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "21.01"
    },
    "nested_loop": [
      {
        "table": {
          "table_name": "gp",
          "access_type": "range",
          "possible_keys": [
            "PRIMARY",
            "idx_group_id"
          ],
          "key": "idx_group_id",
          "used_key_parts": [
            "group_id"
          ],
          "key_length": "4",
          "rows_examined_per_scan": 5,
          "rows_produced_per_join": 5,
          "filtered": "100.00",
          "index_condition": "(`portal`.`gp`.`group_id` in (90,89))",
          "cost_info": {
            "read_cost": "8.01",
            "eval_cost": "1.00",
            "prefix_cost": "9.01",
            "data_read_per_join": "80"
          },
          "used_columns": [
            "product_id",
            "group_id"
          ]
        }
      },
      {
        "table": {
          "table_name": "gpf",
          "access_type": "ref",
          "possible_keys": [
            "PRIMARY",
            "idx_group_id"
          ],
          "key": "idx_group_id",
          "used_key_parts": [
            "group_id"
          ],
          "key_length": "4",
          "ref": [
            "portal.gp.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 5,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "5.00",
            "eval_cost": "1.00",
            "prefix_cost": "15.01",
            "data_read_per_join": "560"
          },
          "used_columns": [
            "feature_id",
            "group_id"
          ]
        }
      },
      {
        "table": {
          "table_name": "pfv",
          "access_type": "ref",
          "possible_keys": [
            "PRIMARY",
            "fl",
            "lang_code",
            "product_id",
            "fpl"
          ],
          "key": "fpl",
          "used_key_parts": [
            "feature_id",
            "product_id",
            "lang_code"
          ],
          "key_length": "12",
          "ref": [
            "portal.gpf.feature_id",
            "portal.gp.product_id",
            "const"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 5,
          "filtered": "100.00",
          "index_condition": "((`portal`.`gpf`.`feature_id` = `portal`.`pfv`.`feature_id`) and (`portal`.`pfv`.`product_id` = `portal`.`gp`.`product_id`))",
          "cost_info": {
            "read_cost": "5.00",
            "eval_cost": "1.00",
            "prefix_cost": "21.01",
            "data_read_per_join": "3K"
          },
          "used_columns": [
            "feature_id",
            "product_id",
            "variant_id",
            "lang_code"
          ]
        }
      }
    ]
  }
}

Result

feature_id product_id variant_id group_id
74 10521 9864 89
74 10523 9899 89
74 10524 9889 90
74 10525 9865 90
74 10526 9864 90