You do not need to specifically check. If the filter does not return any objects, an EmptyQuerySet is returned, and forloop will never be entered.
riders = leg.riders.filter(family=driver_family)
for rider in riders:
...
If you really want this, you can simply do:
riders = leg.riders.filter(family=driver_family)
if riders:
for rider in riders:
...
An exception ObjectDoesNotExistoccurs only when you try to get a specific record using get():
try:
rider = leg.riders.get(...)
except Rider.DoesNotExist:
...