тут `..getSingleOrNull()` — каскадный оператор, он возвращает исходный SimpleSelectStatement, а не Future. Поэтому query не nullable и != null всегда true.
Нужны скобки:
final query = await (db.select(db.users)
..where((row) => row.email.equals(email)))
.getSingleOrNull();