SELECT 
  pfv.feature_id, 
  pfv.product_id, 
  pfv.variant_id, 
  fv.position, 
  fvd.variant 
FROM 
  cscart_product_features_values AS pfv 
  INNER JOIN cscart_product_feature_variants AS fv ON pfv.feature_id = fv.feature_id 
  AND pfv.variant_id = fv.variant_id 
  INNER JOIN cscart_product_feature_variant_descriptions AS fvd ON pfv.variant_id = fvd.variant_id 
  AND fvd.lang_code = 'en' 
WHERE 
  pfv.feature_id IN (
    22083, 22084, 20634, 21030, 21142, 24191, 
    21630, 20451, 20254, 20449, 21023, 
    20326, 21917, 23490, 21358, 24741, 
    22370
  ) 
  AND pfv.product_id IN (
    796, 787, 3450, 2496, 2317, 37885, 23172, 
    18749, 4465, 18747, 2503, 4271, 1054, 
    33719, 22302, 47008, 350
  ) 
  AND pfv.lang_code = 'en'

Query time 0.02699

JSON explain

{
  "query_block": {
    "select_id": 1,
    "nested_loop": [
      {
        "table": {
          "table_name": "pfv",
          "access_type": "range",
          "possible_keys": [
            "PRIMARY",
            "fl",
            "variant_id",
            "lang_code",
            "product_id",
            "fpl",
            "idx_product_feature_variant_id"
          ],
          "key": "PRIMARY",
          "key_length": "6",
          "used_key_parts": ["feature_id", "product_id"],
          "rows": 323,
          "filtered": 0.522924185,
          "attached_condition": "pfv.feature_id in (22083,22084,20634,21030,21142,24191,21630,20451,20254,20449,21023,20326,21917,23490,21358,24741,22370) and pfv.product_id in (796,787,3450,2496,2317,37885,23172,18749,4465,18747,2503,4271,1054,33719,22302,47008,350) and pfv.lang_code = 'en'",
          "using_index": true
        }
      },
      {
        "table": {
          "table_name": "fv",
          "access_type": "eq_ref",
          "possible_keys": ["PRIMARY", "feature_id"],
          "key": "PRIMARY",
          "key_length": "3",
          "used_key_parts": ["variant_id"],
          "ref": ["dev_db.pfv.variant_id"],
          "rows": 1,
          "filtered": 100,
          "attached_condition": "fv.feature_id = pfv.feature_id"
        }
      },
      {
        "table": {
          "table_name": "fvd",
          "access_type": "eq_ref",
          "possible_keys": ["PRIMARY"],
          "key": "PRIMARY",
          "key_length": "9",
          "used_key_parts": ["variant_id", "lang_code"],
          "ref": ["dev_db.pfv.variant_id", "const"],
          "rows": 1,
          "filtered": 100,
          "index_condition": "fvd.lang_code = 'en'"
        }
      }
    ]
  }
}

Result

feature_id product_id variant_id position variant
20254 4465 70877 0 Good rowers don't come from calm seas
20326 4271 71101 0 37
20449 18747 71547 0 Cushion cover & gut
20451 18749 71551 0 Cushion cover & gut
20634 3450 72132 0 Single bottle
21023 2503 73443 0 Chai lẻ
21030 2496 73472 0 250gr
21142 2317 73928 0 Case AirPods Pro
21358 22302 74721 0 Shining
21630 23172 75649 0 You & Me
21917 1054 76717 0 Brocade knitted bag in red-yellow
22083 796 77294 0 Earrings
22084 787 77297 0 Earrings
22370 350 78434 1 Blue mix orange
23490 33719 81505 1 Size XS
24191 37885 84291 1 Twilly 120cm x 5cm
24741 47008 86290 1 Brown