Ваш второй пример должен работать, как указал Аарон. Иногда я обнаруживал, что при отсутствии результатов из БД появляются ошибки, так что, возможно, это так.
list (), кстати, по умолчанию, поэтому, если вы действительно хотите сократить его, вы можете даже сделать это:
def transactions = Transaction.createCriteria() {