Ну, конкретно ваш код работает потому, что вы не указали проикси, и он открывает без проикси. А если вы укажете некорректное проикси будет ошибка в таймеррор при попытке подключения к оной. Во всяком случая так на python2.7
Андрей Воскресенский: Что не работает то? (x['product_id'] for x in cart) это просто генератор айдишников, то что у вас во втором варианте список айдишников, при итерации разницы нет. Посмотрите принтом что выводится, покажите ошибку. Ксатити, преобразовывать к интам нет необходимости. И по йадишнику вы можете получить все что нужно из базы.