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 (
    88904, 86858, 92192, 92193, 92194, 92195, 
    92196, 92204, 92205, 92206, 92207, 
    92208, 92209, 92442, 92443, 92448, 
    92147, 92148, 92149, 92349, 92350, 
    92351, 92352, 86864
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01542

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "82.19"
    },
    "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": 91,
            "rows_produced_per_join": 91,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "9.39",
              "eval_cost": "9.10",
              "prefix_cost": "18.49",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (88904,86858,92192,92193,92194,92195,92196,92204,92205,92206,92207,92208,92209,92442,92443,92448,92147,92148,92149,92349,92350,92351,92352,86864))"
          }
        },
        {
          "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": 91,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "22.75",
              "eval_cost": "9.10",
              "prefix_cost": "50.34",
              "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": 4,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "22.75",
              "eval_cost": "0.46",
              "prefix_cost": "82.19",
              "data_read_per_join": "11K"
            },
            "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
86858 7156,7157M,7148 0
86864 7148,7156,7157M 0
88904 7194M
92147 7343,7341,7342,7157M
92148 7341,7157M,7342,7343
92149 7343,7341,7342,7157M
92192 7343,7341,7342,7157M
92193 7342,7343,7341,7157M
92194 7341,7342,7343,7157M
92195 7341,7342,7343,7157M
92196 7341,7342,7343,7157M
92204 7157M,7342,7341,7343
92205 7341,7157M,7342,7343
92206 7341,7157M,7343,7342
92207 7343,7342,7341,7157M
92208 7342,7157M,7341,7343
92209 7157M,7342,7341,7343
92349 7157M,7342,7341,7343
92350 7157M,7342,7343,7341
92351 7343,7341,7342,7157M
92352 7343,7341,7342,7157M
92442 7342,7341,7157M,7343
92443 7342,7341,7157M,7343
92448 7342,7341,7157M,7343