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 = 7 
WHERE 
  cscart_products_categories.product_id IN (
    170, 162, 168, 61, 166, 736, 734, 732, 
    733, 735, 737, 1569, 258, 257, 1783, 
    1779, 1782, 1781, 1676, 1229, 1181, 
    362, 256, 452, 420, 374, 800, 1136, 224, 
    795, 1839, 797, 798, 1409, 367, 1393, 
    484, 445, 157, 388, 585, 241, 629, 590, 
    860, 1790, 230, 413
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00201

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": 48,
      "filtered": 100,
      "index_condition": "cscart_products_categories.product_id in (170,162,168,61,166,736,734,732,733,735,737,1569,258,257,1783,1779,1782,1781,1676,1229,1181,362,256,452,420,374,800,1136,224,795,1839,797,798,1409,367,1393,484,445,157,388,585,241,629,590,860,1790,230,413)"
    },
    "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": ["bacpvdev_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", "bacpvdev_db.cscart_products_categories.product_id"],
      "rows": 1,
      "filtered": 100
    }
  }
}

Result

product_id category_ids position
61 21M
157 20M
162 21M
166 21M
168 21M
170 21M
224 20M
230 20M
241 20M
256 30M
257 30M
258 30M
362 30M
367 20M
374 20M
388 20M
413 20M
420 30M
445 20M
452 30M
484 20M
585 20M
590 20M
629 20M
732 21M
733 21M
734 21M
735 21M
736 21M
737 21M
795 20M
797 20M
798 20M
800 20M
860 20M
1136 20M
1181 30M
1229 30M
1393 20M
1409 20M
1569 8M
1676 30M
1779 43M
1781 43M
1782 43M
1783 43M
1790 20M
1839 20M