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 = 'en' 
  AND gp.group_id IN (14, 13, 20)

Query time 0.00078

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "25.09"
    },
    "nested_loop": [
      {
        "table": {
          "table_name": "gpf",
          "access_type": "index",
          "possible_keys": [
            "PRIMARY",
            "idx_group_id"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "feature_id",
            "group_id"
          ],
          "key_length": "6",
          "rows_examined_per_scan": 13,
          "rows_produced_per_join": 3,
          "filtered": "23.08",
          "using_index": true,
          "cost_info": {
            "read_cost": "4.11",
            "eval_cost": "0.60",
            "prefix_cost": "4.71",
            "data_read_per_join": "312"
          },
          "used_columns": [
            "feature_id",
            "group_id"
          ],
          "attached_condition": "(`atulecarter_atul_demo1`.`gpf`.`group_id` in (14,13,20))"
        }
      },
      {
        "table": {
          "table_name": "pfv",
          "access_type": "ref",
          "possible_keys": [
            "PRIMARY",
            "fl",
            "lang_code",
            "product_id",
            "fpl",
            "idx_product_feature_variant_id"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "feature_id"
          ],
          "key_length": "3",
          "ref": [
            "atulecarter_atul_demo1.gpf.feature_id"
          ],
          "rows_examined_per_scan": 7,
          "rows_produced_per_join": 10,
          "filtered": "48.99",
          "using_index": true,
          "cost_info": {
            "read_cost": "3.83",
            "eval_cost": "2.06",
            "prefix_cost": "12.74",
            "data_read_per_join": "7K"
          },
          "used_columns": [
            "feature_id",
            "product_id",
            "variant_id",
            "lang_code"
          ],
          "attached_condition": "(`atulecarter_atul_demo1`.`pfv`.`lang_code` = 'en')"
        }
      },
      {
        "table": {
          "table_name": "gp",
          "access_type": "eq_ref",
          "possible_keys": [
            "PRIMARY",
            "idx_group_id"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "product_id",
            "group_id"
          ],
          "key_length": "6",
          "ref": [
            "atulecarter_atul_demo1.pfv.product_id",
            "atulecarter_atul_demo1.gpf.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 10,
          "filtered": "100.00",
          "using_index": true,
          "cost_info": {
            "read_cost": "10.29",
            "eval_cost": "2.06",
            "prefix_cost": "25.09",
            "data_read_per_join": "164"
          },
          "used_columns": [
            "product_id",
            "group_id"
          ]
        }
      }
    ]
  }
}

Result

feature_id product_id variant_id group_id
550 289 1202 13
550 297 1203 13
550 298 1204 13
550 299 1205 13
550 300 1202 14
550 303 1203 14
550 304 1204 14
550 305 1205 14
550 306 1212 14
550 307 1213 14
550 308 1214 14
550 309 1215 14
550 310 1216 14
550 311 1207 14
550 312 1206 14
550 313 1208 14
550 314 1209 14
550 315 1210 14
550 316 1211 14
551 334 1217 20
551 335 1218 20