fn.IF returning True instead of values
Peewee uses a heuristic for function calls when the first argument is a field, where peewee applies that field's conversion method to the value returned by the database. This usually works, but you've found a case where it is problematic. To avoid coercing the function output, specify `coerce=False`:

```python
# Note you don't need TestModel.flag == True
fn.IF(TestModel.flag, 'hello', 'goodbye', coerce=False)
``` Confirmed.  Thanks!
I'm trying to use `fn.IF` to pick a value to use.  However, if using a model property it is returning `True` as the value instead of the proper value and this is happening even if that property is `False`.


Example script (note: this is a greatly simplified version of what I'm actually trying to do):
```python
from peewee import BooleanField, fn, Model
from playhouse.pool import PooledMySQLDatabase


db_conn = PooledMySQLDatabase(
    user='',
    password='',
    database='',
    stale_timeout=5 * 60
)

class TestModel(Model):
    flag = BooleanField()

    class Meta:
        database = db_conn

TestModel.create_table(safe=True)

TestModel.create(flag=True)
TestModel.create(flag=False)

query = (
    TestModel.select(
        TestModel.id,
        fn.IF(
            TestModel.flag,
            'Hello',
            'GoodBye'
        ).alias('test')
    )
).dicts()

print(query)

for record in query:
    print(record)
```


The output I get is:
```
SELECT `t1`.`id`, IF(`t1`.`flag`, 'Hello', 'GoodBye') AS `test` FROM `testmodel` AS `t1`
{'id': 1, 'test': True}
{'id': 2, 'test': True}
```
And if I run that query inside MySQL I get the following results:
```
mysql> SELECT `t1`.`id`, IF(`t1`.`flag`, 'Hello', 'GoodBye') AS `test` FROM `testmodel` AS `t1`;
+----+---------+
| id | test    |
+----+---------+
|  1 | Hello   |
|  2 | GoodBye |
+----+---------+
```
which is what I'd expect to get.

I can modify the query slightly to:
```python
query = (
    TestModel.select(
        TestModel.id,
        fn.IF(
            TestModel.flag == True,
            'Hello',
            'GoodBye'
        ).alias('test')
    )
).dicts()
```

And that does appear to work but it seems unnecessary to require the comparison on a boolean field.