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 = 7198 
WHERE 
  cscart_products_categories.product_id IN (
    95740, 95741, 95742, 95753, 95754, 95755, 
    95765, 95786, 95787, 95788, 95819, 
    95820, 95885, 95886, 95887, 95888, 
    96117, 96118, 96176, 96529, 96569, 
    97628, 98036, 98037, 98038, 98229, 
    98230, 98231, 98232, 98233
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00147

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "28.17"
    },
    "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": 31,
            "rows_produced_per_join": 31,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "3.37",
              "eval_cost": "3.10",
              "prefix_cost": "6.47",
              "data_read_per_join": "496"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (95740,95741,95742,95753,95754,95755,95765,95786,95787,95788,95819,95820,95885,95886,95887,95888,96117,96118,96176,96529,96569,97628,98036,98037,98038,98229,98230,98231,98232,98233))"
          }
        },
        {
          "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": 31,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "7.75",
              "eval_cost": "3.10",
              "prefix_cost": "17.32",
              "data_read_per_join": "496"
            },
            "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": 1,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "7.75",
              "eval_cost": "0.16",
              "prefix_cost": "28.17",
              "data_read_per_join": "4K"
            },
            "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
95740 7203M
95741 7203M
95742 7203M
95753 7199M
95754 7203M
95755 7209M
95765 7209M
95786 7199M
95787 7209M
95788 7199M
95819 7203M
95820 7209M
95885 7199M
95886 7199M
95887 7199M
95888 7199M
96117 7199M
96118 7199M
96176 7199M
96529 7203M
96569 7266,7198M 0
97628 7264M
98036 7199M
98037 7199M
98038 7199M
98229 7199M
98230 7209M
98231 7209M
98232 7209M
98233 7199M