Привет, в общем решил проблему сам, но руки написать сюда решение дошли только сегодня. Начну с того, что решение топорное и не подходит для случаев когда степень вложенности не ограничена (у меня по тз чётко указано 2 степени). В общем проблема решилась когда я посмотрел в json категорий и увидел что mptt динамически создает несколько полей в том числе поле "level" в котором отсчёт идёт от нуля. и в шаблоне у меня получилось так:
<li class="filter-li" ng-repeat="category in categories">
<a ng-href="products/category/{{ category.seo_name }}" class="filter-link active" ng-if="category.level == 0">{{ category.name }}<span
class="filter-count">2.2k</span></a>
<ul class="filter-ul filter-2nd" ng-if="category.level > 0">
<li class="filter-li">
<a ng-href="products/category/{{ category.seo_name }}" class="filter-link active"> -> {{ category.name }}
<span class="filter-count">2.2k</span>
</a>
</li>
</ul>
</li>
Json, кстати выглядит так:
[
{
"id": 3,
"name": "Ботинки",
"description": "",
"visible": true,
"products_count": 0,
"products_count_cache": 0,
"seo_name": "botinki",
"seo_title": "",
"seo_desc": "",
"seo_keywords": "",
"lft": 1,
"rght": 6,
"tree_id": 2,
"level": 0,
"parent": null
},