.exists() fails for a query with SQL literals/expresions 
With **2.x** something like this was working.
```python 
# This is a simplified query (check in one round-trip):
(User.select(SQL('1')) | Organisation.select(SQL('1'))).exists()
```

With **3.x (3.9.6)** the query gets build but **.exists()** fails with:
```
*** AttributeError: 'ModelCompoundSelectQuery' object has no attribute 'columns'
```

```sql
-- (User.select(SQL('1')) | Organisation.select(SQL('1'))).sql():
SELECT 1 FROM "user" AS "t1" UNION SELECT 1 FROM "organisation" AS "t2"
```

It might be that it has nothing to do specifically with SQL expressions
```python
(User.select(User.id) | Organisation.select(Organisation.id)).exists()
```
also fails with
```
*** AttributeError: 'ModelCompoundSelectQuery' object has no attribute 'columns'
```