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 = 7149 
WHERE 
  cscart_products_categories.product_id IN (
    98305, 98306, 98307, 98308, 98309, 98310, 
    98311, 98312, 98313, 98482, 98690, 
    98693, 98694, 98758, 100374, 100375, 
    100380, 100381, 100382, 100383, 100598, 
    100601, 101635, 101636, 101639, 101640, 
    101644, 101645, 101646, 101647, 101648, 
    101649, 101650, 101651, 101652, 101653
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00623

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "66.89"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "link_type",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 74,
            "rows_produced_per_join": 74,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "7.69",
              "eval_cost": "7.40",
              "prefix_cost": "15.09",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (98305,98306,98307,98308,98309,98310,98311,98312,98313,98482,98690,98693,98694,98758,100374,100375,100380,100381,100382,100383,100598,100601,101635,101636,101639,101640,101644,101645,101646,101647,101648,101649,101650,101651,101652,101653))"
          }
        },
        {
          "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",
              "nuie_scalesta_net.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 74,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "18.50",
              "eval_cost": "7.40",
              "prefix_cost": "40.99",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        },
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "nuie_scalesta_net.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 3,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "18.50",
              "eval_cost": "0.37",
              "prefix_cost": "66.89",
              "data_read_per_join": "9K"
            },
            "used_columns": [
              "category_id",
              "usergroup_ids",
              "status",
              "storefront_id"
            ],
            "attached_condition": "((`nuie_scalesta_net`.`cscart_categories`.`storefront_id` in (0,1)) and ((`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`))) and (`nuie_scalesta_net`.`cscart_categories`.`status` in ('A','H')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
98305 7161M,7303
98306 7161M,7303
98307 7161M,7303
98308 7303,7161M
98309 7303,7161M
98310 7303,7161M
98311 7303,7161M
98312 7303,7161M
98313 7303,7161M
98482 7149M,7182,7300 0
98690 7301,7151M
98693 7301,7151M
98694 7301,7151M
98758 7300,7182,7149M 0
100374 7151M,7301
100375 7151M,7301
100380 7151M,7301
100381 7301,7151M
100382 7301,7151M
100383 7301,7151M
100598 7151M,7301
100601 7151M,7301
101635 7301,7151M
101636 7151M,7301
101639 7151M,7301
101640 7151M,7301
101644 7151M,7301
101645 7301,7151M
101646 7301,7151M
101647 7301,7151M
101648 7301,7151M
101649 7151M,7301
101650 7301,7151M
101651 7301,7151M
101652 7301,7151M
101653 7301,7151M