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 = 477 
WHERE 
  cscart_products_categories.product_id IN (
    5246, 16847, 28133, 31923, 1706, 273, 
    3827, 36568, 31902, 36474, 751, 35466, 
    1748, 31925, 43798, 5270, 5257, 5288, 
    335, 6083, 42264, 5405, 1768, 37881, 
    1663, 37300, 5414, 41549, 4279, 37296, 
    32712, 33291
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00519

JSON explain

{
  "query_block": {
    "select_id": 1,
    "nested_loop": [
      {
        "table": {
          "table_name": "cscart_products_categories",
          "access_type": "range",
          "possible_keys": ["PRIMARY", "pt"],
          "key": "pt",
          "key_length": "3",
          "used_key_parts": ["product_id"],
          "rows": 35,
          "filtered": 100,
          "index_condition": "cscart_products_categories.product_id in (5246,16847,28133,31923,1706,273,3827,36568,31902,36474,751,35466,1748,31925,43798,5270,5257,5288,335,6083,42264,5405,1768,37881,1663,37300,5414,41549,4279,37296,32712,33291)"
        }
      },
      {
        "table": {
          "table_name": "cscart_categories",
          "access_type": "eq_ref",
          "possible_keys": ["PRIMARY", "c_status", "p_category_id"],
          "key": "PRIMARY",
          "key_length": "3",
          "used_key_parts": ["category_id"],
          "ref": ["dev_db.cscart_products_categories.category_id"],
          "rows": 1,
          "filtered": 100,
          "attached_condition": "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')"
        }
      },
      {
        "table": {
          "table_name": "product_position_source",
          "access_type": "eq_ref",
          "possible_keys": ["PRIMARY", "pt"],
          "key": "PRIMARY",
          "key_length": "6",
          "used_key_parts": ["category_id", "product_id"],
          "ref": ["const", "dev_db.cscart_products_categories.product_id"],
          "rows": 1,
          "filtered": 100
        }
      }
    ]
  }
}

Result

product_id category_ids position
273 151M
335 174M
751 143M
1663 172M
1706 175M
1748 183M
1768 319,412,320M
3827 181M
4279 184M
5246 174M
5257 122M
5270 122M
5288 122M
5405 157M
5414 157M
6083 181M
16847 157M
28133 181M
31902 122M
31923 181M
31925 181M
32712 341,340,174M
33291 173M
35466 121M
36474 160M
36568 152M
37296 145M
37300 145M
37881 318M
41549 174M
42264 181M
43798 122M