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 = 257 
WHERE 
  cscart_products_categories.product_id IN (
    306, 316, 307, 311, 514, 515, 516, 427, 
    319, 320, 531, 322, 325, 326, 410, 327, 
    323, 324, 328, 329, 330, 535, 333, 390, 
    280, 689, 281, 283, 641, 309, 691, 693
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00092

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": 61,
      "filtered": 100,
      "index_condition": "cscart_products_categories.product_id in (306,316,307,311,514,515,516,427,319,320,531,322,325,326,410,327,323,324,328,329,330,535,333,390,280,689,281,283,641,309,691,693)"
    },
    "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
280 263M
281 263M
283 263M
306 257,263M 290
307 263,257M 300
309 264M
311 264,257M 440
316 257,264M 291
319 257,265M 510
320 257,265M 520
322 257,265M 540
323 257,265M 590
324 265,257M 591
325 257,265M 550
326 257,265M 560
327 257,265M 580
328 257,265M 592
329 267,257M 600
330 267,257M 610
333 267,257M 640
390 276,257M 700
410 265,257M 570
427 265,257M 500
514 257,263M 491
515 257,264M 492
516 257,264M 493
531 257,265M 530
535 267,257M 630
641 281,263M
689 263M
691 264M
693 264M