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 (87, 84, 31, 90, 82, 86, 89, 85, 92)

Query time 0.00093

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "86.41"
    },
    "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": 9,
          "rows_produced_per_join": 9,
          "filtered": "100.00",
          "index_condition": "(`cscart`.`gpf`.`group_id` in (87,84,31,90,82,86,89,85,92))",
          "cost_info": {
            "read_cost": "19.81",
            "eval_cost": "1.80",
            "prefix_cost": "21.61",
            "data_read_per_join": "936"
          },
          "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": 27,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "27.00",
            "eval_cost": "5.40",
            "prefix_cost": "54.01",
            "data_read_per_join": "432"
          },
          "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": 27,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "27.00",
            "eval_cost": "5.40",
            "prefix_cost": "86.41",
            "data_read_per_join": "20K"
          },
          "used_columns": [
            "feature_id",
            "product_id",
            "variant_id",
            "lang_code"
          ]
        }
      }
    ]
  }
}

Result

feature_id product_id variant_id group_id
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 841 1224 85
549 840 1306 85
549 839 1302 85
549 838 1280 85
549 837 1226 85
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
549 872 1224 92
549 871 1306 92
549 870 1302 92
549 869 1280 92
549 868 1226 92