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 (
    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.00288

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "528.98"
    },
    "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": 168,
            "rows_produced_per_join": 167,
            "filtered": "99.97",
            "index_condition": "(((`jmj_test`.`v`.`product_id` in (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": "213.62",
              "eval_cost": "33.59",
              "prefix_cost": "247.21",
              "data_read_per_join": "129K"
            },
            "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": 16,
            "filtered": "9.95",
            "cost_info": {
              "read_cost": "167.95",
              "eval_cost": "3.34",
              "prefix_cost": "448.75",
              "data_read_per_join": "7K"
            },
            "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": 16,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "16.71",
              "eval_cost": "3.34",
              "prefix_cost": "468.81",
              "data_read_per_join": "37K"
            },
            "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": 16,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "16.71",
              "eval_cost": "3.34",
              "prefix_cost": "488.87",
              "data_read_per_join": "25K"
            },
            "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": 16,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "16.71",
              "eval_cost": "3.34",
              "prefix_cost": "508.92",
              "data_read_per_join": "50K"
            },
            "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": 16,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "16.71",
              "eval_cost": "3.34",
              "prefix_cost": "528.98",
              "data_read_per_join": "7K"
            },
            "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
990 280 2103 S Color black 0 5000
995 280 2112 S Color midnightblue 0 5000
986 280 2113 S Color navy 0 5000
994 280 2113 S Color navy 0 5000
989 280 2146 S Color olivedrab 0 5000
988 280 2147 S Color olive 0 5000
991 280 2148 S Color darkolivegreen 0 5000
996 280 2161 S Color lightgreen 0 5000
993 280 2190 S Color saddlebrown 0 5000
992 280 2205 S Color maroon 0 5000
997 280 2209 S Color lightpink 0 5000
987 280 2211 S Color hotpink 0 5000
992 8 132 M Fabric Cotton 0 28
991 8 132 M Fabric Cotton 0 28
990 8 132 M Fabric Cotton 0 28
989 8 132 M Fabric Cotton 0 28
988 8 132 M Fabric Cotton 0 28
997 8 132 M Fabric Cotton 0 28
987 8 132 M Fabric Cotton 0 28
996 8 132 M Fabric Cotton 0 28
986 8 132 M Fabric Cotton 0 28
995 8 132 M Fabric Cotton 0 28
994 8 132 M Fabric Cotton 0 28
993 8 132 M Fabric Cotton 0 28
992 133 769 M Size M 0 4999
991 133 769 M Size M 0 4999
990 133 769 M Size M 0 4999
989 133 769 M Size M 0 4999
988 133 769 M Size M 0 4999
997 133 769 M Size M 0 4999
987 133 769 M Size M 0 4999
996 133 769 M Size M 0 4999
986 133 769 M Size M 0 4999
995 133 769 M Size M 0 4999
994 133 769 M Size M 0 4999
993 133 769 M Size M 0 4999
997 133 2250 M Size L 0 4999
987 133 2250 M Size L 0 4999
996 133 2250 M Size L 0 4999
986 133 2250 M Size L 0 4999
995 133 2250 M Size L 0 4999
994 133 2250 M Size L 0 4999
993 133 2250 M Size L 0 4999
992 133 2250 M Size L 0 4999
991 133 2250 M Size L 0 4999
990 133 2250 M Size L 0 4999
989 133 2250 M Size L 0 4999
988 133 2250 M Size L 0 4999
990 133 3156 M Size XL 0 4999
994 133 771 M Size XXL 0 4999
989 133 3156 M Size XL 0 4999
993 133 771 M Size XXL 0 4999
988 133 3156 M Size XL 0 4999
997 133 3156 M Size XL 0 4999
987 133 3156 M Size XL 0 4999
996 133 3156 M Size XL 0 4999
986 133 3156 M Size XL 0 4999
995 133 3156 M Size XL 0 4999
994 133 3156 M Size XL 0 4999
993 133 3156 M Size XL 0 4999
992 133 771 M Size XXL 0 4999
991 133 771 M Size XXL 0 4999
990 133 771 M Size XXL 0 4999
989 133 771 M Size XXL 0 4999
988 133 771 M Size XXL 0 4999
997 133 771 M Size XXL 0 4999
992 133 3156 M Size XL 0 4999
987 133 771 M Size XXL 0 4999
996 133 771 M Size XXL 0 4999
986 133 771 M Size XXL 0 4999
991 133 3156 M Size XL 0 4999
995 133 771 M Size XXL 0 4999