For readability, may I suggest:
def q_fetch_none_of(table, column_names_to_exclude):
table = (
getattr(app_tables, table) if isinstance(table, str)
else table
)
return q.fetch_only(*[
c['name']
for c in table.list_columns()
if c['name'] not in column_names_to_exclude
])