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 = 7195 
WHERE 
  cscart_products_categories.product_id IN (
    97272, 97273, 97274, 97275, 97276, 97277, 
    97278, 97279, 97280, 97281, 97282, 
    97283, 97284, 97285, 97286, 97287, 
    97288, 97289, 97290, 97291, 97292, 
    97293, 97294, 97295, 97296, 97297, 
    97298, 97299, 97300, 97301, 97302, 
    97303, 97304, 97305, 97306, 97307, 
    97308, 97309, 97310, 97311, 97312, 
    97313, 97314, 97315, 97316, 97317, 
    97318, 97319
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00151

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "43.48"
    },
    "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": 48,
            "rows_produced_per_join": 48,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "5.08",
              "eval_cost": "4.80",
              "prefix_cost": "9.88",
              "data_read_per_join": "768"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (97272,97273,97274,97275,97276,97277,97278,97279,97280,97281,97282,97283,97284,97285,97286,97287,97288,97289,97290,97291,97292,97293,97294,97295,97296,97297,97298,97299,97300,97301,97302,97303,97304,97305,97306,97307,97308,97309,97310,97311,97312,97313,97314,97315,97316,97317,97318,97319))"
          }
        },
        {
          "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": 48,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "12.00",
              "eval_cost": "4.80",
              "prefix_cost": "26.68",
              "data_read_per_join": "768"
            },
            "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": 2,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "12.00",
              "eval_cost": "0.24",
              "prefix_cost": "43.48",
              "data_read_per_join": "6K"
            },
            "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
97272 7254M
97273 7254M
97274 7254M
97275 7254M
97276 7254M
97277 7254M
97278 7254M
97279 7254M
97280 7254M
97281 7254M
97282 7254M
97283 7254M
97284 7254M
97285 7254M
97286 7254M
97287 7254M
97288 7254M
97289 7254M
97290 7254M
97291 7254M
97292 7254M
97293 7254M
97294 7254M
97295 7254M
97296 7254M
97297 7254M
97298 7254M
97299 7254M
97300 7254M
97301 7254M
97302 7254M
97303 7254M
97304 7254M
97305 7254M
97306 7254M
97307 7254M
97308 7254M
97309 7254M
97310 7254M
97311 7254M
97312 7254M
97313 7254M
97314 7254M
97315 7254M
97316 7254M
97317 7254M
97318 7254M
97319 7254M