Look in log/development.log to see what the difference is in the
queries (which should be logged there). Then it will probably make
sense.
By using :is_billed => false you are telling rails that you want the
value to be whatever rails uses as the logical value false (which
appears to be "f"). By specifying yourself that the contents of the
column must be the string "false" it does not find the records.
I am a bit surprised that the sqlite example you gave works. Are you
sure you entered the query exactly as you showed? I am not that
familiar with sqlite however.