На самом деле все довольно просто, вы можете использовать поле own_cards пользовательского объекта в качестве менеджера.
enabled_cards = theuser.owned_cards.filter(disabled=False)
Ответьте на второй вопрос в комментариях, это должно работать, используя Q объектов , чтобы отменить поиск.
not_owned_cards = Card.objects.filter(~Q(id__in=theuser.owned_cards.all()), disabled=False)