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 = 7244 
WHERE 
  cscart_products_categories.product_id IN (
    94652, 94653, 94659, 94660, 94661, 94663, 
    94664, 94665, 94675, 94676, 94677, 
    94813, 94817, 94818, 94819, 95449, 
    95803, 95805, 95807, 95809, 95811, 
    97719, 97720, 97721, 97722, 97723, 
    97724, 97725, 97726, 97727, 97765, 
    97766, 97767, 97768, 97769, 97770, 
    97771, 97772, 97773, 97775, 97776, 
    97777, 97783, 97784, 97785, 97787, 
    97788, 97789
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00160

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 (94652,94653,94659,94660,94661,94663,94664,94665,94675,94676,94677,94813,94817,94818,94819,95449,95803,95805,95807,95809,95811,97719,97720,97721,97722,97723,97724,97725,97726,97727,97765,97766,97767,97768,97769,97770,97771,97772,97773,97775,97776,97777,97783,97784,97785,97787,97788,97789))"
          }
        },
        {
          "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
94652 7245M
94653 7245M
94659 7245M
94660 7245M
94661 7245M
94663 7245M
94664 7245M
94665 7245M
94675 7245M
94676 7245M
94677 7245M
94813 7245M
94817 7245M
94818 7245M
94819 7245M
95449 7245M
95803 7245M
95805 7245M
95807 7245M
95809 7245M
95811 7245M
97719 7245M
97720 7245M
97721 7245M
97722 7245M
97723 7245M
97724 7245M
97725 7245M
97726 7245M
97727 7245M
97765 7245M
97766 7245M
97767 7245M
97768 7245M
97769 7245M
97770 7245M
97771 7245M
97772 7245M
97773 7245M
97775 7245M
97776 7245M
97777 7245M
97783 7245M
97784 7245M
97785 7245M
97787 7245M
97788 7245M
97789 7245M