これに気づかずかなり悩んでました。
それならそれでPHPでの書きようがありますが、もっと簡単な解決策がありました。
<form action="" method="post">HTTPパラメータは同名の場合は、最後のパラメータを送信するという仕様のようで、その仕組みを利用し、同名のhiddenを用意することでチェックが入ってなくてもhiddenのデータを受け取るので、簡単に判定できるようになります。
<input type=hidden" name="check" value="0" />
<input type=checkbox" name="check" value="1" />
</form>
参考:CakePHP guide