SELECT 
  cscart_products_categories.product_id, 
  GROUP_CONCAT(
    IF(
      cscart_products_categories.link_type = "M", 
      CONCAT(
        cscart_products_categories.category_id, 
        "M"
      ), 
      cscart_products_categories.category_id
    )
  ) AS category_ids, 
  product_position_source.position AS position 
FROM 
  cscart_products_categories 
  INNER JOIN cscart_categories ON cscart_categories.category_id = cscart_products_categories.category_id 
  AND cscart_categories.storefront_id IN (0, 1) 
  AND (
    cscart_categories.usergroup_ids = '' 
    OR FIND_IN_SET(
      0, cscart_categories.usergroup_ids
    ) 
    OR FIND_IN_SET(
      1, cscart_categories.usergroup_ids
    )
  ) 
  AND cscart_categories.status IN ('A', 'H') 
  LEFT JOIN cscart_products_categories AS product_position_source ON cscart_products_categories.product_id = product_position_source.product_id 
  AND product_position_source.category_id = 54 
WHERE 
  cscart_products_categories.product_id IN (
    18516, 51007, 51004, 51005, 51010, 51008, 
    51012, 51013, 51011, 51015, 51006, 
    51021, 51016, 51024, 51017, 51019, 
    51018, 51022, 51014, 51045, 51422, 
    51025, 51440, 51424, 51029, 51442, 
    51429, 51060, 51436, 51430, 51433, 
    51027, 51063, 51020, 51067, 51423, 
    51431, 51435, 51028, 51031, 51062, 
    51042, 51441, 51432, 51434, 51030, 
    51032, 51033, 51425, 51026, 51035, 
    51059, 51069, 51070, 51038, 51066, 
    51023, 51041, 51056, 51040, 51050, 
    51065, 51039, 51052
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00285

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "97.66"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 71,
            "rows_produced_per_join": 71,
            "filtered": "100.00",
            "index_condition": "(`test_uchur_k`.`cscart_products_categories`.`product_id` in (18516,51007,51004,51005,51010,51008,51012,51013,51011,51015,51006,51021,51016,51024,51017,51019,51018,51022,51014,51045,51422,51025,51440,51424,51029,51442,51429,51060,51436,51430,51433,51027,51063,51020,51067,51423,51431,51435,51028,51031,51062,51042,51441,51432,51434,51030,51032,51033,51425,51026,51035,51059,51069,51070,51038,51066,51023,51041,51056,51040,51050,51065,51039,51052))",
            "cost_info": {
              "read_cost": "40.86",
              "eval_cost": "7.10",
              "prefix_cost": "47.96",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        },
        {
          "table": {
            "table_name": "product_position_source",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id",
              "product_id"
            ],
            "key_length": "6",
            "ref": [
              "const",
              "test_uchur_k.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 71,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "17.75",
              "eval_cost": "7.10",
              "prefix_cost": "72.81",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        },
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "test_uchur_k.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 3,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "17.75",
              "eval_cost": "0.36",
              "prefix_cost": "97.66",
              "data_read_per_join": "18K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`test_uchur_k`.`cscart_categories`.`storefront_id` in (0,1)) and ((`test_uchur_k`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`test_uchur_k`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`test_uchur_k`.`cscart_categories`.`usergroup_ids`))) and (`test_uchur_k`.`cscart_categories`.`status` in ('A','H')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
18516 40,44,221M
51004 76M
51005 76M
51006 76M
51007 76M
51008 131M
51010 76M
51011 76M
51012 76M
51013 76M
51014 76M
51015 76M
51016 76M
51017 76M
51018 76M
51019 76M
51020 76M
51021 76M
51022 76M
51023 76M
51024 76M
51025 76M
51026 76M
51027 76M
51028 76M
51029 76M
51030 76M
51031 76M
51032 76M
51033 76M
51035 76M
51038 76M
51039 76M
51040 76M
51041 76M
51042 76M
51045 76M
51050 131M
51052 131M
51056 131M
51059 239M
51060 239M
51062 264M
51063 264M
51065 264M
51066 264M
51067 264M
51069 131M
51070 131M
51422 68M
51423 68M
51424 68M
51425 68M
51429 68M
51430 68M
51431 68M
51432 40M,73
51433 73,40M
51434 73,40M
51435 73,40M
51436 40M,73
51440 241M
51441 241M
51442 241M