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 = 7156 
WHERE 
  cscart_products_categories.product_id IN (
    87595, 87610, 88791, 87370, 89609, 89610, 
    92173, 92174, 92395, 92396, 92397, 
    92398, 92399, 84250, 84255, 87578, 
    87579, 87593, 87594, 87608, 87609, 
    88151, 88153, 88789, 88790, 92198, 
    92199, 92200, 92201, 92202
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01504

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "61.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": 68,
            "rows_produced_per_join": 68,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "7.08",
              "eval_cost": "6.80",
              "prefix_cost": "13.88",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (87595,87610,88791,87370,89609,89610,92173,92174,92395,92396,92397,92398,92399,84250,84255,87578,87579,87593,87594,87608,87609,88151,88153,88789,88790,92198,92199,92200,92201,92202))"
          }
        },
        {
          "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": 68,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "17.00",
              "eval_cost": "6.80",
              "prefix_cost": "37.68",
              "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": "17.00",
              "eval_cost": "0.34",
              "prefix_cost": "61.48",
              "data_read_per_join": "8K"
            },
            "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
84250 7194M
84255 7194M
87370 7343,7342,7157M,7341
87578 7194M
87579 7194M
87593 7194M
87594 7194M
87595 7194M
87608 7194M
87609 7194M
87610 7194M
88151 7194M
88153 7194M
88789 7194M
88790 7194M
88791 7194M
89609 7157M,7341,7342,7343
89610 7157M,7341,7342,7343
92173 7157,7156,7148M 0
92174 7148M,7157,7156 0
92198 7343,7341,7157M,7342
92199 7343,7341,7157M,7342
92200 7341,7343,7157M,7342
92201 7341,7342,7157M,7343
92202 7342,7343,7341,7157M
92395 7156,7157,7148M 0
92396 7156,7148M,7157 0
92397 7156,7148M,7157 0
92398 7156,7148M,7157 0
92399 7156,7148M,7157 0