нужно изменить структуру хранимых данных, у тебя prodict_id является ключом массива, поэтому нельзя добавить несколько позиций с одинаковым id, вместо
[
$product_id => $size
]
нужно
[
['product_id' => $product_id, 'size' => $size]
]
Ну и сама идея хранить корзину в сессии весьма сомнительна, если данные нужно хранить на сервере, то для этого есть БД. Сессии это временное хранилище, обычно они живут несколько минут (зависит от настроек сервера). Покупатель отвлечётся на 20 минут и корзина отвалится, зачем это нужно? Тогда уж проще хранить её на клиенте в localStorage.
ну и несколько ремарок
<form action="index.php" method="get">
запросы изменяющие состояние на сервере нужно передавать методом POST, это семантическая ошибка.
<input type="submit" name="go" value="Добавить в корзину">
зачем передавать значение кнопки, если на сервере оно не используется?