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 = 255 
WHERE 
  cscart_products_categories.product_id IN (
    256, 253, 254, 425, 251, 252, 426, 599, 
    600, 601, 257, 258, 525, 255, 526, 602, 
    603, 604, 261, 262, 259, 260, 403, 404, 
    265, 266, 263, 264, 405, 406, 267, 268
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00007

JSON explain

{
  "query_block": {
    "select_id": 1,
    "table": {
      "table_name": "cscart_products_categories",
      "access_type": "range",
      "possible_keys": ["PRIMARY", "pt"],
      "key": "pt",
      "key_length": "3",
      "used_key_parts": ["product_id"],
      "rows": 64,
      "filtered": 100,
      "index_condition": "cscart_products_categories.product_id in (256,253,254,425,251,252,426,599,600,601,257,258,525,255,526,602,603,604,261,262,259,260,403,404,265,266,263,264,405,406,267,268)"
    },
    "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": ["markins_test.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", "markins_test.cscart_products_categories.product_id"],
      "rows": 1,
      "filtered": 100
    }
  }
}

Result

product_id category_ids position
251 287,255M 23
252 287,255M 24
253 287,255M 21
254 287,255M 22
255 288,255M 33
256 288,255M 10
257 288,255M 31
258 288,255M 32
259 289,255M 53
260 289,255M 54
261 289,255M 51
262 289,255M 52
263 290,255M 63
264 290,255M 64
265 290,255M 61
266 290,255M 62
267 289,255M 91
268 290,255M 92
403 255,289M 55
404 255,289M 56
405 255,290M 65
406 255,290M 66
425 287,255M 22
426 287,255M 24
525 288,255M 32
526 288,255M 34
599 255,287M 25
600 255,287M 26
601 287,255M 27
602 255,288M 36
603 255,288M 37
604 255,288M 37