if id is not None:
if type(id) is list:
q = q.filter(Model.id.in_(id))
else:
q = q.filter(Model.id == id)
Я вот думаю, а нужно ли второе условие? Может можно выборку получать просто через: SELECT * FROM TableName WHERE ID IN ( ... )
Просто если в скобках будет одно значение, то оно сработает так же как: SELECT * FROM TableName WHERE ID IN (42)