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 (
    2305, 48558, 40449, 34674, 34668, 3862, 
    2857, 48235, 6368, 3519, 15322, 6274, 
    48559, 30368, 40381, 47828, 46583, 
    48557, 1945, 44946, 22263, 34667, 1267, 
    3863, 2859, 1105, 35730, 1107, 35177, 
    48069, 854, 44943
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00567

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": 63,
          "filtered": 100,
          "index_condition": "cscart_products_categories.product_id in (2305,48558,40449,34674,34668,3862,2857,48235,6368,3519,15322,6274,48559,30368,40381,47828,46583,48557,1945,44946,22263,34667,1267,3863,2859,1105,35730,1107,35177,48069,854,44943)"
        }
      },
      {
        "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
854 168,142,209,210M
1105 122M
1107 122M
1267 172M
1945 193M
2305 169,412,210M
2857 193M
2859 193M
3519 340,313M
3862 313,166M
3863 313,166M
6274 173M
6368 174,412M
15322 173M
22263 142M
30368 175M
34667 122M
34668 122M
34674 122M
35177 143,144M
35730 313,191M
40381 122M
40449 209,409,149M
44943 193,317M
44946 193,317M
46583 169M
47828 172M
48069 210,209,213,114M
48235 174,210,412,213M
48557 210,143M
48558 210,144M
48559 210,141M