Не очень понятно зачем вы формируете список, можно просто передать в шаблон queryset, а всю остальную работу сделать в шаблоне, т.к. вы в шаблоне можете делать цикл по queryset. Шаблон в итоге примерно так буде выглядеть:
{% if stores_queryset %}
<div class="footer-col-2">
<div class="col-name">Наши магазины</div>
<ul class='stores'>
{% for store in stores_queryset %}
<li>
<span>{{ store.name }} - {{ store.address }}</span>
<ul>
{% for phone in store. phones_set %}
<li>{{ phone.name }}: {{ phone.phone }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
</div>
{% endif %}
Насчет фильтрации телефонов с учетом show=1. Можно сделать
кастомный manager, и тогда в phones_set будут уже только отфильтрованные телефоны.
Или проще - сделать property в моделе Store:
class Store(models.Model):
name = models.CharField(max_length=200)
address = models.CharField(max_length=200)
@property
def showed_phones(self):
return self.phones_set.filter(show=1)
и тогда в шаблоне в соотв месте нужно юзать цикл {% for phone in store. showed_phones %}