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 = 7340 
WHERE 
  cscart_products_categories.product_id IN (
    100728, 100729, 100730, 100731, 100732, 
    100733, 100734, 100735, 100736, 100737, 
    100738, 100739, 100740, 100741, 100742, 
    100743, 100744, 100745, 100746, 100747, 
    100748, 100749, 100750, 100751, 100752, 
    100753, 100754, 100755, 100756, 100757
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01529

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "108.30"
    },
    "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": 120,
            "rows_produced_per_join": 120,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "12.30",
              "eval_cost": "12.00",
              "prefix_cost": "24.30",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (100728,100729,100730,100731,100732,100733,100734,100735,100736,100737,100738,100739,100740,100741,100742,100743,100744,100745,100746,100747,100748,100749,100750,100751,100752,100753,100754,100755,100756,100757))"
          }
        },
        {
          "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": 120,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "30.00",
              "eval_cost": "12.00",
              "prefix_cost": "66.30",
              "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": 6,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "30.00",
              "eval_cost": "0.60",
              "prefix_cost": "108.30",
              "data_read_per_join": "15K"
            },
            "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
100728 7157M,7341,7342,7343
100729 7157M,7341,7342,7343
100730 7157M,7341,7342,7343
100731 7157M,7341,7342,7343
100732 7157M,7341,7342,7343
100733 7157M,7341,7342,7343
100734 7157M,7341,7342,7343
100735 7157M,7341,7342,7343
100736 7157M,7341,7342,7343
100737 7157M,7341,7342,7343
100738 7157M,7341,7342,7343
100739 7157M,7341,7342,7343
100740 7157M,7341,7342,7343
100741 7157M,7341,7342,7343
100742 7157M,7341,7342,7343
100743 7157M,7341,7342,7343
100744 7157M,7341,7342,7343
100745 7157M,7341,7342,7343
100746 7157M,7341,7342,7343
100747 7157M,7341,7342,7343
100748 7157M,7341,7342,7343
100749 7157M,7341,7342,7343
100750 7157M,7341,7342,7343
100751 7157M,7341,7342,7343
100752 7157M,7341,7342,7343
100753 7157M,7341,7342,7343
100754 7157M,7341,7342,7343
100755 7157M,7341,7342,7343
100756 7157M,7341,7342,7343
100757 7157M,7341,7342,7343