SELECT 
  v.product_id, 
  v.feature_id, 
  v.value, 
  v.value_int, 
  v.variant_id, 
  f.feature_type, 
  fd.description, 
  fd.prefix, 
  fd.suffix, 
  vd.variant, 
  f.parent_id, 
  f.position, 
  gf.position as gposition 
FROM 
  jmj_product_features as f 
  LEFT JOIN jmj_product_features_values as v ON v.feature_id = f.feature_id 
  LEFT JOIN jmj_product_features_descriptions as fd ON fd.feature_id = v.feature_id 
  AND fd.lang_code = 'en' 
  LEFT JOIN jmj_product_feature_variants fv ON fv.variant_id = v.variant_id 
  LEFT JOIN jmj_product_feature_variant_descriptions as vd ON vd.variant_id = fv.variant_id 
  AND vd.lang_code = 'en' 
  LEFT JOIN jmj_product_features as gf ON gf.feature_id = f.parent_id 
  AND gf.feature_type = 'G' 
WHERE 
  f.status IN ('A') 
  AND v.product_id in (
    938, 939, 942, 943, 944, 945, 946, 947, 
    948, 949, 951, 952, 953, 954, 956, 958, 
    960, 962, 963, 965, 967, 968, 969, 970, 
    972, 973, 974, 975, 976, 977, 978, 979, 
    980, 981, 984, 985, 986, 987, 988, 989, 
    990, 991, 992, 993, 994, 995, 996, 997
  ) 
  AND f.display_on_catalog = 'Y' 
  AND (
    f.categories_path = '' 
    OR FIND_IN_SET(3, f.categories_path) 
    OR FIND_IN_SET(8, f.categories_path) 
    OR FIND_IN_SET(10, f.categories_path)
  ) 
  AND IF(
    f.parent_id, 
    (
      SELECT 
        status 
      FROM 
        jmj_product_features as df 
      WHERE 
        df.feature_id = f.parent_id
    ), 
    'A'
  ) IN ('A') 
  AND (
    v.variant_id != 0 
    OR (
      f.feature_type != 'C' 
      AND v.value != ''
    ) 
    OR (f.feature_type = 'C') 
    OR v.value_int != ''
  ) 
  AND v.lang_code = 'en' 
ORDER BY 
  fd.description, 
  fv.position

Query time 0.00920

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "2155.89"
    },
    "ordering_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "nested_loop": [
        {
          "table": {
            "table_name": "v",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "fl",
              "variant_id",
              "lang_code",
              "product_id",
              "fpl",
              "idx_product_feature_variant_id"
            ],
            "key": "idx_product_feature_variant_id",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 685,
            "rows_produced_per_join": 684,
            "filtered": "99.97",
            "index_condition": "(((`jmj_test`.`v`.`product_id` in (938,939,942,943,944,945,946,947,948,949,951,952,953,954,956,958,960,962,963,965,967,968,969,970,972,973,974,975,976,977,978,979,980,981,984,985,986,987,988,989,990,991,992,993,994,995,996,997)) and (`jmj_test`.`v`.`lang_code` = 'en')) and (`jmj_test`.`v`.`feature_id` is not null))",
            "cost_info": {
              "read_cost": "870.05",
              "eval_cost": "136.96",
              "prefix_cost": "1007.01",
              "data_read_per_join": "529K"
            },
            "used_columns": [
              "feature_id",
              "product_id",
              "variant_id",
              "value",
              "value_int",
              "lang_code"
            ]
          }
        },
        {
          "table": {
            "table_name": "f",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "status"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "feature_id"
            ],
            "key_length": "3",
            "ref": [
              "jmj_test.v.feature_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 68,
            "filtered": "9.95",
            "cost_info": {
              "read_cost": "684.81",
              "eval_cost": "13.63",
              "prefix_cost": "1828.78",
              "data_read_per_join": "29K"
            },
            "used_columns": [
              "feature_id",
              "feature_type",
              "categories_path",
              "parent_id",
              "display_on_catalog",
              "status",
              "position"
            ],
            "attached_condition": "((`jmj_test`.`f`.`status` = 'A') and (`jmj_test`.`f`.`display_on_catalog` = 'Y') and ((`jmj_test`.`f`.`categories_path` = '') or find_in_set(3,`jmj_test`.`f`.`categories_path`) or find_in_set(8,`jmj_test`.`f`.`categories_path`) or find_in_set(10,`jmj_test`.`f`.`categories_path`)) and (if(`jmj_test`.`f`.`parent_id`,(/* select#2 */ select `jmj_test`.`df`.`status` from `jmj_test`.`jmj_product_features` `df` where (`jmj_test`.`df`.`feature_id` = `jmj_test`.`f`.`parent_id`)),'A') = 'A') and ((`jmj_test`.`v`.`variant_id` <> 0) or ((`jmj_test`.`f`.`feature_type` <> 'C') and (`jmj_test`.`v`.`value` <> '')) or (`jmj_test`.`f`.`feature_type` = 'C') or (`jmj_test`.`v`.`value_int` <> '')))",
            "attached_subqueries": [
              {
                "dependent": true,
                "cacheable": false,
                "query_block": {
                  "select_id": 2,
                  "cost_info": {
                    "query_cost": "1.20"
                  },
                  "table": {
                    "table_name": "df",
                    "access_type": "eq_ref",
                    "possible_keys": [
                      "PRIMARY"
                    ],
                    "key": "PRIMARY",
                    "used_key_parts": [
                      "feature_id"
                    ],
                    "key_length": "3",
                    "ref": [
                      "jmj_test.f.parent_id"
                    ],
                    "rows_examined_per_scan": 1,
                    "rows_produced_per_join": 1,
                    "filtered": "100.00",
                    "cost_info": {
                      "read_cost": "1.00",
                      "eval_cost": "0.20",
                      "prefix_cost": "1.20",
                      "data_read_per_join": "440"
                    },
                    "used_columns": [
                      "feature_id",
                      "status"
                    ]
                  }
                }
              }
            ]
          }
        },
        {
          "table": {
            "table_name": "fd",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "feature_id",
              "lang_code"
            ],
            "key_length": "9",
            "ref": [
              "jmj_test.v.feature_id",
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 68,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "68.15",
              "eval_cost": "13.63",
              "prefix_cost": "1910.56",
              "data_read_per_join": "154K"
            },
            "used_columns": [
              "feature_id",
              "description",
              "prefix",
              "suffix",
              "lang_code"
            ]
          }
        },
        {
          "table": {
            "table_name": "fv",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "variant_id"
            ],
            "key_length": "3",
            "ref": [
              "jmj_test.v.variant_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 68,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "68.15",
              "eval_cost": "13.63",
              "prefix_cost": "1992.33",
              "data_read_per_join": "105K"
            },
            "used_columns": [
              "variant_id",
              "position"
            ]
          }
        },
        {
          "table": {
            "table_name": "vd",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "variant_id",
              "lang_code"
            ],
            "key_length": "9",
            "ref": [
              "jmj_test.fv.variant_id",
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 68,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "68.15",
              "eval_cost": "13.63",
              "prefix_cost": "2074.11",
              "data_read_per_join": "206K"
            },
            "used_columns": [
              "variant_id",
              "variant",
              "lang_code"
            ]
          }
        },
        {
          "table": {
            "table_name": "gf",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "feature_id"
            ],
            "key_length": "3",
            "ref": [
              "jmj_test.f.parent_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 68,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "68.15",
              "eval_cost": "13.63",
              "prefix_cost": "2155.89",
              "data_read_per_join": "29K"
            },
            "used_columns": [
              "feature_id",
              "feature_type",
              "position"
            ],
            "attached_condition": "<if>(is_not_null_compl(gf), (`jmj_test`.`gf`.`feature_type` = 'G'), true)"
          }
        }
      ]
    }
  }
}

Result

product_id feature_id value value_int variant_id feature_type description prefix suffix variant parent_id position gposition
948 280 2103 S Color black 0 5000
973 280 2103 S Color black 0 5000
969 280 2103 S Color black 0 5000
958 280 2103 S Color black 0 5000
953 280 2103 S Color black 0 5000
990 280 2103 S Color black 0 5000
956 280 2103 S Color black 0 5000
951 280 2103 S Color black 0 5000
949 280 2103 S Color black 0 5000
963 280 2104 S Color dimgray 0 5000
965 280 2109 S Color gainsboro 0 5000
995 280 2112 S Color midnightblue 0 5000
994 280 2113 S Color navy 0 5000
986 280 2113 S Color navy 0 5000
980 280 2114 S Color darkblue 0 5000
942 280 2114 S Color darkblue 0 5000
954 280 2115 S Color mediumblue 0 5000
960 280 2116 S Color blue 0 5000
962 280 2120 S Color cornflowerblue 0 5000
967 280 2123 S Color skyblue 0 5000
947 280 2127 S Color lavender 0 5000
977 280 2128 S Color aliceblue 0 5000
975 280 2128 S Color aliceblue 0 5000
981 280 2128 S Color aliceblue 0 5000
943 280 2141 S Color darkcyan 0 5000
989 280 2146 S Color olivedrab 0 5000
976 280 2147 S Color olive 0 5000
988 280 2147 S Color olive 0 5000
978 280 2148 S Color darkolivegreen 0 5000
991 280 2148 S Color darkolivegreen 0 5000
946 280 2150 S Color green 0 5000
939 280 2151 S Color darkgreen 0 5000
985 280 2153 S Color darkseagreen 0 5000
996 280 2161 S Color lightgreen 0 5000
984 280 2166 S Color lightgoldenrodyellow 0 5000
945 280 2186 S Color goldenrod 0 5000
970 280 2189 S Color sienna 0 5000
993 280 2190 S Color saddlebrown 0 5000
944 280 2202 S Color firebrick 0 5000
938 280 2202 S Color firebrick 0 5000
992 280 2205 S Color maroon 0 5000
974 280 2207 S Color mistyrose 0 5000
972 280 2209 S Color lightpink 0 5000
997 280 2209 S Color lightpink 0 5000
979 280 2210 S Color palevioletred 0 5000
968 280 2210 S Color palevioletred 0 5000
987 280 2211 S Color hotpink 0 5000
952 280 2223 S Color darkmagenta 0 5000
988 8 132 M Fabric Cotton 0 28
953 8 132 M Fabric Cotton 0 28
956 8 132 M Fabric Cotton 0 28
987 8 132 M Fabric Cotton 0 28
952 8 132 M Fabric Cotton 0 28
951 8 132 M Fabric Cotton 0 28
986 8 132 M Fabric Cotton 0 28
981 8 132 M Fabric Cotton 0 28
949 8 132 M Fabric Cotton 0 28
985 8 132 M Fabric Cotton 0 28
980 8 132 M Fabric Cotton 0 28
984 8 132 M Fabric Cotton 0 28
948 8 132 M Fabric Cotton 0 28
979 8 132 M Fabric Cotton 0 28
947 8 132 M Fabric Cotton 0 28
978 8 132 M Fabric Cotton 0 28
946 8 132 M Fabric Cotton 0 28
975 8 132 M Fabric Cotton 0 28
943 8 132 M Fabric Cotton 0 28
945 8 132 M Fabric Cotton 0 28
977 8 132 M Fabric Cotton 0 28
942 8 132 M Fabric Cotton 0 28
974 8 132 M Fabric Cotton 0 28
944 8 132 M Fabric Cotton 0 28
976 8 132 M Fabric Cotton 0 28
939 8 132 M Fabric Cotton 0 28
973 8 132 M Fabric Cotton 0 28
972 8 132 M Fabric Cotton 0 28
938 8 132 M Fabric Cotton 0 28
997 8 132 M Fabric Cotton 0 28
970 8 132 M Fabric Cotton 0 28
967 8 132 M Fabric Cotton 0 28
996 8 132 M Fabric Cotton 0 28
969 8 132 M Fabric Cotton 0 28
995 8 132 M Fabric Cotton 0 28
965 8 132 M Fabric Cotton 0 28
968 8 132 M Fabric Cotton 0 28
994 8 132 M Fabric Cotton 0 28
963 8 132 M Fabric Cotton 0 28
962 8 132 M Fabric Cotton 0 28
993 8 132 M Fabric Cotton 0 28
990 8 132 M Fabric Cotton 0 28
960 8 132 M Fabric Cotton 0 28
992 8 132 M Fabric Cotton 0 28
954 8 132 M Fabric Cotton 0 28
989 8 132 M Fabric Cotton 0 28
991 8 132 M Fabric Cotton 0 28
958 8 132 M Fabric Cotton 0 28
943 133 768 M Size S 0 4999
962 133 769 M Size M 0 4999
993 133 769 M Size M 0 4999
990 133 769 M Size M 0 4999
960 133 769 M Size M 0 4999
992 133 769 M Size M 0 4999
954 133 769 M Size M 0 4999
989 133 769 M Size M 0 4999
991 133 769 M Size M 0 4999
958 133 769 M Size M 0 4999
988 133 769 M Size M 0 4999
953 133 769 M Size M 0 4999
956 133 769 M Size M 0 4999
987 133 769 M Size M 0 4999
952 133 769 M Size M 0 4999
951 133 769 M Size M 0 4999
986 133 769 M Size M 0 4999
981 133 769 M Size M 0 4999
949 133 769 M Size M 0 4999
985 133 769 M Size M 0 4999
980 133 769 M Size M 0 4999
984 133 769 M Size M 0 4999
948 133 769 M Size M 0 4999
979 133 769 M Size M 0 4999
947 133 769 M Size M 0 4999
978 133 769 M Size M 0 4999
946 133 769 M Size M 0 4999
945 133 769 M Size M 0 4999
977 133 769 M Size M 0 4999
942 133 769 M Size M 0 4999
974 133 769 M Size M 0 4999
944 133 769 M Size M 0 4999
976 133 769 M Size M 0 4999
939 133 769 M Size M 0 4999
973 133 769 M Size M 0 4999
975 133 769 M Size M 0 4999
943 133 769 M Size M 0 4999
972 133 769 M Size M 0 4999
938 133 769 M Size M 0 4999
997 133 769 M Size M 0 4999
970 133 769 M Size M 0 4999
967 133 769 M Size M 0 4999
996 133 769 M Size M 0 4999
969 133 769 M Size M 0 4999
995 133 769 M Size M 0 4999
965 133 769 M Size M 0 4999
968 133 769 M Size M 0 4999
994 133 769 M Size M 0 4999
963 133 769 M Size M 0 4999
975 133 2250 M Size L 0 4999
943 133 2250 M Size L 0 4999
972 133 2250 M Size L 0 4999
938 133 2250 M Size L 0 4999
997 133 2250 M Size L 0 4999
970 133 2250 M Size L 0 4999
996 133 2250 M Size L 0 4999
969 133 2250 M Size L 0 4999
965 133 2250 M Size L 0 4999
995 133 2250 M Size L 0 4999
968 133 2250 M Size L 0 4999
994 133 2250 M Size L 0 4999
963 133 2250 M Size L 0 4999
967 133 2250 M Size L 0 4999
962 133 2250 M Size L 0 4999
993 133 2250 M Size L 0 4999
990 133 2250 M Size L 0 4999
960 133 2250 M Size L 0 4999
992 133 2250 M Size L 0 4999
989 133 2250 M Size L 0 4999
991 133 2250 M Size L 0 4999
958 133 2250 M Size L 0 4999
953 133 2250 M Size L 0 4999
988 133 2250 M Size L 0 4999
956 133 2250 M Size L 0 4999
987 133 2250 M Size L 0 4999
952 133 2250 M Size L 0 4999
954 133 2250 M Size L 0 4999
951 133 2250 M Size L 0 4999
986 133 2250 M Size L 0 4999
981 133 2250 M Size L 0 4999
949 133 2250 M Size L 0 4999
985 133 2250 M Size L 0 4999
980 133 2250 M Size L 0 4999
984 133 2250 M Size L 0 4999
948 133 2250 M Size L 0 4999
979 133 2250 M Size L 0 4999
947 133 2250 M Size L 0 4999
978 133 2250 M Size L 0 4999
946 133 2250 M Size L 0 4999
945 133 2250 M Size L 0 4999
977 133 2250 M Size L 0 4999
974 133 2250 M Size L 0 4999
942 133 2250 M Size L 0 4999
944 133 2250 M Size L 0 4999
976 133 2250 M Size L 0 4999
939 133 2250 M Size L 0 4999
973 133 2250 M Size L 0 4999
946 133 3156 M Size XL 0 4999
969 133 771 M Size XXL 0 4999
965 133 771 M Size XXL 0 4999
995 133 771 M Size XXL 0 4999
945 133 3156 M Size XL 0 4999
977 133 3156 M Size XL 0 4999
974 133 3156 M Size XL 0 4999
968 133 771 M Size XXL 0 4999
942 133 3156 M Size XL 0 4999
994 133 771 M Size XXL 0 4999
944 133 3156 M Size XL 0 4999
976 133 3156 M Size XL 0 4999
963 133 771 M Size XXL 0 4999
967 133 771 M Size XXL 0 4999
939 133 3156 M Size XL 0 4999
973 133 3156 M Size XL 0 4999
975 133 3156 M Size XL 0 4999
962 133 771 M Size XXL 0 4999
993 133 771 M Size XXL 0 4999
943 133 3156 M Size XL 0 4999
938 133 3156 M Size XL 0 4999
990 133 771 M Size XXL 0 4999
972 133 3156 M Size XL 0 4999
960 133 771 M Size XXL 0 4999
992 133 771 M Size XXL 0 4999
970 133 3156 M Size XL 0 4999
954 133 771 M Size XXL 0 4999
989 133 771 M Size XXL 0 4999
991 133 771 M Size XXL 0 4999
996 133 3156 M Size XL 0 4999
958 133 771 M Size XXL 0 4999
953 133 771 M Size XXL 0 4999
988 133 771 M Size XXL 0 4999
969 133 3156 M Size XL 0 4999
965 133 3156 M Size XL 0 4999
995 133 3156 M Size XL 0 4999
956 133 771 M Size XXL 0 4999
997 133 3156 M Size XL 0 4999
987 133 771 M Size XXL 0 4999
968 133 3156 M Size XL 0 4999
952 133 771 M Size XXL 0 4999
994 133 3156 M Size XL 0 4999
963 133 3156 M Size XL 0 4999
967 133 3156 M Size XL 0 4999
951 133 771 M Size XXL 0 4999
986 133 771 M Size XXL 0 4999
993 133 3156 M Size XL 0 4999
981 133 771 M Size XXL 0 4999
962 133 3156 M Size XL 0 4999
990 133 3156 M Size XL 0 4999
949 133 771 M Size XXL 0 4999
985 133 771 M Size XXL 0 4999
960 133 3156 M Size XL 0 4999
992 133 3156 M Size XL 0 4999
980 133 771 M Size XXL 0 4999
984 133 771 M Size XXL 0 4999
989 133 3156 M Size XL 0 4999
948 133 771 M Size XXL 0 4999
991 133 3156 M Size XL 0 4999
979 133 771 M Size XXL 0 4999
958 133 3156 M Size XL 0 4999
953 133 3156 M Size XL 0 4999
988 133 3156 M Size XL 0 4999
947 133 771 M Size XXL 0 4999
978 133 771 M Size XXL 0 4999
956 133 3156 M Size XL 0 4999
946 133 771 M Size XXL 0 4999
987 133 3156 M Size XL 0 4999
952 133 3156 M Size XL 0 4999
954 133 3156 M Size XL 0 4999
945 133 771 M Size XXL 0 4999
977 133 771 M Size XXL 0 4999
974 133 771 M Size XXL 0 4999
942 133 771 M Size XXL 0 4999
951 133 3156 M Size XL 0 4999
986 133 3156 M Size XL 0 4999
944 133 771 M Size XXL 0 4999
981 133 3156 M Size XL 0 4999
976 133 771 M Size XXL 0 4999
939 133 771 M Size XXL 0 4999
949 133 3156 M Size XL 0 4999
985 133 3156 M Size XL 0 4999
973 133 771 M Size XXL 0 4999
975 133 771 M Size XXL 0 4999
943 133 771 M Size XXL 0 4999
980 133 3156 M Size XL 0 4999
984 133 3156 M Size XL 0 4999
972 133 771 M Size XXL 0 4999
938 133 771 M Size XXL 0 4999
948 133 3156 M Size XL 0 4999
997 133 771 M Size XXL 0 4999
979 133 3156 M Size XL 0 4999
970 133 771 M Size XXL 0 4999
947 133 3156 M Size XL 0 4999
978 133 3156 M Size XL 0 4999
996 133 771 M Size XXL 0 4999