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 = 421 
WHERE 
  cscart_products_categories.product_id IN (
    6368, 3519, 15322, 6274, 48559, 30368, 
    48251, 40381, 47828, 46583, 48557, 
    1945, 48244, 22263, 48503, 2859, 35177, 
    44946, 44943, 1977, 3578, 44944, 27356, 
    35167, 35165, 35174, 35176, 35173, 
    35170, 2291, 35172, 35171
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00407

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 (6368,3519,15322,6274,48559,30368,48251,40381,47828,46583,48557,1945,48244,22263,48503,2859,35177,44946,44943,1977,3578,44944,27356,35167,35165,35174,35176,35173,35170,2291,35172,35171)"
        }
      },
      {
        "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
1945 193M
1977 122M
2291 122M
2859 193M
3519 340,313M
3578 340M
6274 173M
6368 174,412M
15322 173M
22263 142M
27356 409,210,165M
30368 175M
35165 210,144,412,143M
35167 144,210,143M
35170 143,412,144M
35171 143,210,144M
35172 143,144M
35173 143,144M
35174 143,144M
35176 143,144M
35177 143,144M
40381 122M
44943 193,317M
44944 193,317M
44946 193,317M
46583 169M
47828 172M
48244 213,210,110,155M
48251 213,210,110,157M
48503 317,210M
48557 210,143M
48559 210,141M