если открыть файл сессии текстовым редактором
То вы как раз и найдёте serialize/unserialize, которые механизм сессий и использует для чтения/записи данных в файле. (разумеется, если не говорить о кастомных sessionhandler - там может быть что угодно)
кусок кода корзины товаров (добавляет товар в корзину):
Здесь serialize/unserialize не нужны и никакого смысла либо пользы не несут.
serialize выполняет представление переменной PHP в некий бинарный вид (и это важно! результат serialize не текст, а именно бинарный блоб, в том числе может штатно использоваться NUL-байт). unserialize это представление восстанавливает обратно. Обратите внимание
на большой варнинг в документации и не используйте unserialize на данных которые вы не контролируете полностью.
А если я попробую просто записать в ячейку не сериализованный массив?
Получите слово Array вместо данных и предупреждение от языка за некорректное использование массива.