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 = 493 
WHERE 
  cscart_products_categories.product_id IN (
    18264, 47974, 46982, 464, 3021, 1106, 
    37315, 45446, 44423, 1585, 397, 40447, 
    47163, 1323, 3579, 47162, 34669, 6355, 
    35168, 27262, 47824, 34666, 35166, 
    44945, 35169, 40444, 2303, 41292, 387, 
    31627, 40436, 31910
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00848

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": 66,
          "filtered": 100,
          "index_condition": "cscart_products_categories.product_id in (18264,47974,46982,464,3021,1106,37315,45446,44423,1585,397,40447,47163,1323,3579,47162,34669,6355,35168,27262,47824,34666,35166,44945,35169,40444,2303,41292,387,31627,40436,31910)"
        }
      },
      {
        "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
387 212,197M
397 123M
464 201M
1106 122M
1323 166,212M
1585 111M
2303 210,412,169M
3021 340,313M
3579 313,340M
6355 412M
18264 153,195M
27262 412,210M
31627 122M
31910 122M
34666 122M
34669 122M
35166 144M
35168 210,143,412,144M
35169 143,144M
37315 313,340M
40436 409,149M
40444 409,149M
40447 110,409,149M
41292 209,210,142M
44423 122M
44945 193,317M
45446 169M
46982 209,196M
47162 166,213M
47163 166,213M
47824 117,214M
47974 163,166,210,183M