Вы можете создать пустой IAsyncEnumerable, как описано в этом SO .
Но если я не думаю, что это идеальный вариант, так как он требует ссылки на дополнительный пакет или реализации AsyncEnumerable.Empty самостоятельно.
Кроме того, вы можете изменить свой код таким образом, чтобы не требовать «пустой» контейнер для ваших выражений.
Например:
var expressions = new List<IQueryable<Foo>>();
if (condition1)
{
IQueryable<Foo> part1 = ....;
expressions.Add(part1);
}
if (condition2)
{
IQueryable<Foo> part2 = ....;
expressions.Add(part2);
}
var result = expressions.Aggregate((acc, i) => acc.Concat(i));
return await result.ToListAsync();