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 = 7166 
WHERE 
  cscart_products_categories.product_id IN (
    90187, 90188, 90284, 90292, 90145, 90160, 
    84052, 84060, 90130, 85965, 90299, 
    90306, 90144, 90159, 90249, 90257, 
    83941, 84085, 90283, 90291, 90143, 
    90158, 90200, 90211, 85968, 90195, 
    84089, 90170, 90171, 90134, 90135, 
    85964, 90298, 90305, 90230, 90245, 
    90184, 90185, 90136, 83940, 84084, 
    90282, 90290, 90208, 90219, 85967, 
    90248, 90256
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01586

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "86.69"
    },
    "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": 96,
            "rows_produced_per_join": 96,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "9.89",
              "eval_cost": "9.60",
              "prefix_cost": "19.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 (90187,90188,90284,90292,90145,90160,84052,84060,90130,85965,90299,90306,90144,90159,90249,90257,83941,84085,90283,90291,90143,90158,90200,90211,85968,90195,84089,90170,90171,90134,90135,85964,90298,90305,90230,90245,90184,90185,90136,83940,84084,90282,90290,90208,90219,85967,90248,90256))"
          }
        },
        {
          "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": 96,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "24.00",
              "eval_cost": "9.60",
              "prefix_cost": "53.09",
              "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": "24.00",
              "eval_cost": "0.48",
              "prefix_cost": "86.69",
              "data_read_per_join": "12K"
            },
            "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
83940 7193M,7319
83941 7193M,7319
84052 7319,7193M
84060 7319,7193M
84084 7193M,7319
84085 7193M,7319
84089 7319,7193M
85964 7319,7193M
85965 7319,7193M
85967 7319,7193M
85968 7319,7193M
90130 7319,7193M
90134 7193M,7319
90135 7193M,7319
90136 7193M,7319
90143 7193M,7319
90144 7193M,7319
90145 7193M,7319
90158 7193M,7319
90159 7193M,7319
90160 7193M,7319
90170 7319,7193M
90171 7319,7193M
90184 7319,7193M
90185 7319,7193M
90187 7319,7193M
90188 7319,7193M
90195 7193M,7319
90200 7193M,7319
90208 7319,7193M
90211 7319,7193M
90219 7319,7193M
90230 7319,7193M
90245 7319,7193M
90248 7319,7193M
90249 7319,7193M
90256 7319,7193M
90257 7193M,7319
90282 7193M,7319
90283 7193M,7319
90284 7193M,7319
90290 7193M,7319
90291 7319,7193M
90292 7193M,7319
90298 7193M,7319
90299 7319,7193M
90305 7319,7193M
90306 7193M,7319