SELECT 
  pfv.feature_id, 
  pfv.product_id, 
  pfv.variant_id, 
  gp.group_id 
FROM 
  cscart_product_features_values AS pfv 
  INNER JOIN cscart_product_variation_group_products AS gp ON pfv.product_id = gp.product_id 
  INNER JOIN cscart_product_variation_group_features AS gpf ON gpf.group_id = gp.group_id 
  AND gpf.feature_id = pfv.feature_id 
WHERE 
  pfv.lang_code = 'ru' 
  AND gp.group_id IN (25, 87, 84, 31, 90, 82, 86, 89)

Query time 0.00091

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "76.81"
    },
    "nested_loop": [
      {
        "table": {
          "table_name": "gpf",
          "access_type": "range",
          "possible_keys": [
            "PRIMARY",
            "idx_group_id"
          ],
          "key": "idx_group_id",
          "used_key_parts": [
            "group_id"
          ],
          "key_length": "3",
          "rows_examined_per_scan": 8,
          "rows_produced_per_join": 8,
          "filtered": "100.00",
          "index_condition": "(`cscart`.`gpf`.`group_id` in (25,87,84,31,90,82,86,89))",
          "cost_info": {
            "read_cost": "17.61",
            "eval_cost": "1.60",
            "prefix_cost": "19.21",
            "data_read_per_join": "832"
          },
          "used_columns": [
            "feature_id",
            "group_id"
          ]
        }
      },
      {
        "table": {
          "table_name": "gp",
          "access_type": "ref",
          "possible_keys": [
            "PRIMARY",
            "idx_group_id"
          ],
          "key": "idx_group_id",
          "used_key_parts": [
            "group_id"
          ],
          "key_length": "3",
          "ref": [
            "cscart.gpf.group_id"
          ],
          "rows_examined_per_scan": 3,
          "rows_produced_per_join": 24,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "24.00",
            "eval_cost": "4.80",
            "prefix_cost": "48.01",
            "data_read_per_join": "384"
          },
          "used_columns": [
            "product_id",
            "group_id"
          ]
        }
      },
      {
        "table": {
          "table_name": "pfv",
          "access_type": "ref",
          "possible_keys": [
            "PRIMARY",
            "fl",
            "lang_code",
            "product_id",
            "fpl",
            "idx_product_feature_variant_id"
          ],
          "key": "fpl",
          "used_key_parts": [
            "feature_id",
            "product_id",
            "lang_code"
          ],
          "key_length": "12",
          "ref": [
            "cscart.gpf.feature_id",
            "cscart.gp.product_id",
            "const"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 24,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "24.00",
            "eval_cost": "4.80",
            "prefix_cost": "76.81",
            "data_read_per_join": "18K"
          },
          "used_columns": [
            "feature_id",
            "product_id",
            "variant_id",
            "lang_code"
          ]
        }
      }
    ]
  }
}

Result

feature_id product_id variant_id group_id
549 565 1280 25
549 564 1226 25
549 567 1224 25
549 566 1281 25
549 592 1291 31
549 593 1305 31
549 831 1224 82
549 830 1302 82
549 829 1291 82
549 828 1280 82
549 827 1223 82
549 835 1224 84
549 834 1226 84
549 846 1224 86
549 845 1306 86
549 844 1302 86
549 843 1280 86
549 842 1226 86
549 851 1201 87
549 850 1224 87
549 849 1302 87
549 848 1280 87
549 847 1226 87
549 858 1224 89
549 857 1306 89
549 856 1302 89
549 855 1280 89
549 854 1226 89
549 863 1201 90
549 862 1224 90
549 861 1223 90
549 860 1301 90
549 859 1226 90