Problem with the function UNIX_TIMESTAMP
My guess:

From: http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_unix-timestamp


  UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)
  
  If called with no argument, returns a Unix timestamp (seconds since
  '1970-01-01 00:00:00' UTC) as an unsigned integer. If UNIX_TIMESTAMP()
  is called with a date argument, it returns the value of the argument
  as seconds since '1970-01-01 00:00:00' UTC


In the first query, you're comparing your date to the number of seconds 2013-08-01 00:00:00 and 2013-08-01 23:59:00 are after 1970-01-01, meaning you're comparing your dates to seconds.

In the second query, you're actually comparing date to other dates.