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 = 1320 
WHERE 
  cscart_products_categories.product_id IN (
    325721, 21545, 18228, 163607, 164330, 
    169528, 175066, 184043, 191208, 216438, 
    263004, 279659, 295751, 307166, 308366, 
    315969, 315971, 317489, 317495, 317523, 
    317945, 321995, 321998, 324572
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00128

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "25.50"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "link_type",
              "pt",
              "position",
              "category_position"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 24,
            "rows_produced_per_join": 24,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "2.67",
              "eval_cost": "2.40",
              "prefix_cost": "5.07",
              "data_read_per_join": "384"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`unicomps`.`cscart_products_categories`.`product_id` in (325721,21545,18228,163607,164330,169528,175066,184043,191208,216438,263004,279659,295751,307166,308366,315969,315971,317489,317495,317523,317945,321995,321998,324572))"
          }
        },
        {
          "table": {
            "table_name": "product_position_source",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id",
              "product_id"
            ],
            "key_length": "6",
            "ref": [
              "const",
              "unicomps.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 24,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "9.62",
              "eval_cost": "2.40",
              "prefix_cost": "17.10",
              "data_read_per_join": "384"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        },
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id",
              "storefront_id"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "unicomps.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 4,
            "filtered": "19.97",
            "cost_info": {
              "read_cost": "6.00",
              "eval_cost": "0.48",
              "prefix_cost": "25.50",
              "data_read_per_join": "19K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`unicomps`.`cscart_categories`.`storefront_id` in (0,1)) and ((`unicomps`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`unicomps`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`unicomps`.`cscart_categories`.`usergroup_ids`))) and (`unicomps`.`cscart_categories`.`status` in ('A','H')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
18228 658M
21545 1069M
163607 1342M
164330 1345M
169528 658M
175066 658M
184043 1342M
191208 1342M
216438 1342M
263004 1342M
279659 554M
295751 658M
307166 658M
308366 1343M
315969 658M
315971 658M
317489 1342M
317495 1342M
317523 1342M
317945 1342M
321995 1342M
321998 1342M
324572 1342M
325721 658M