Почему в Django преобразование List(QuerySet) такое медленное?
Научись работать с Django
Научись работать с Python (в частности, pep8 и iterable)
Научись пользоваться ORM (only, defer, select/prefetch related) и использовать raw как исключение, а не наоборот
Научись строить архитектуру БД (в частности, кучей всяких JOIN из шести таблиц)
И не будет таких медленных запросов.
А ответом на вопрос будет примерно вот что:
Если QuerySet1 ещё не сфетчен, то QyerySet1[i].id делает запрос к БД (итого, 35 запросов)
list(QyerySet1) делает фетч и .id уже берётся из оперативы.
P.S. Используй django-debug-toolbar. Увидишь все свои SQL запросы и время их исполнения.
Возня с отладчиком показал: 
Проблема в "Отложенной загрузке полей" при исполнении raw-запросов! В большом-пребольшом raw забыл указать одно из полей (не люблю использовать звездочки, т.к. хочется иметь названия всех полей перед глазами). Все работает, но при  получении значения из неуказанного поля выполнялся еще один запрос! Соответственно, при выполнении list() никакой "Отложенной загрузкой полей" в этом большом-пребольшом запросе происходило, а происходил маленький запрос get по id в нужную таблицу (Django сам понимал, какие данные из БД хотят и сам строил маленький get-запрос). Понятно, что выполнение 35 маленьких get запросов быстрее чем 35 больших-пребольших. 
Добавление нужного поля в большой-пребольшой запрос решило проблему. Аналогично ее решает использование звездочек в SQL-запросе.