CakePHP の Model::find() の条件式 (NULL の扱い)

CakePHP 1.3 にて、 Model::find() の条件式で NULL の扱いを考慮する必要があった。

"IS NULL" を表現したい場合

条件式:

<?php
 $conditions = array('hoge' => null);

Where句:

WHERE "hoge" IS NULL

"IS NOT NULL" を表現したい場合

条件式:

<?php
 $conditions = array('NOT' => array('hoge' => null));

Where句:

WHERE NOT ("hoge" IS NULL)

"IS NULL" の他に別の値も OR 条件で指定したい場合

条件式:

<?php
 $conditions = array(
     'OR' => array(
         array('hoge' => null), 
         array('hoge' => '1')
     )
 );

Where句:

WHERE (("hoge" IS NULL) OR ("hoge" = '1'))

ダメな例:

<?php
$conditions = array(
    'OR' => array(
        'hoge' => null,
        'hoge' => '1'    // キーが重複している!
    )
);

PHP 的にはエラーにならないのだが、配列のキーが重複してしまうため、最後の「'hoge' => '1'」 しか効かない。