The manual states that using a data type of boolean should have the following behaviour:
"Data type is used for integer items in order to specify the expected data type:
Boolean - textual representation translated into either 0 or 1. Thus, 'TRUE' is stored as 1 and 'FALSE' is stored as 0. All values are matched in a case-insensitive way. Currently recognized values are, for:
TRUE - true, t, yes, y, on, up, running, enabled, available
FALSE - false, f, no, n, off, down, unused, disabled, unavailable
Additionally, any non-zero numeric value is considered to be TRUE and zero is considered to be FALSE."
As stated, any non-zero numeric values should be considered a boolean True and thus should be translated as "1" in the history. This is currently not the case in Zabbix 3.0.4. A value of '2' is stored without translation.