I’ve edited the question to be more specific and clear
I have the following code on a standalone PHP file:
$conn = mysql_connect("localhost", "", "");
mysql_select_db("name", $conn);
$result = mysql_fetch_array(mysql_query("SELECT EVENT_PRIVATE FROM events WHERE EVENT_ID = 68"));
var_dump($result);
result is NULL
However, if I copy the exact same query to phpMyAdmin, you can see that EVENT_PRIVATE has a value 1 in it.

I have only one db, so I’m definitely using the same db, also, if I select a different column, I can see the correct value.
I don’t get it, do you?
I’ve tried this on matching versions of PHP and MySQL, and it does seem to be something odd about the way the PHP “mysql” functions handle bit fields, or at least something I don’t understand. And it certainly looks a bit like a bug. It works as I’d expect in the “mysqli” extension. Here’s what I tried:
EDIT: Aha!
The book “High Performance SQL” says ‘MySQL treats BIT as a string type, not a numeric type; when you retrieve a BIT(1) value the result is a string but the contents are the binary value 0 or 1, not the ASCII value “0” or “1”‘.
I was expecting BIT to be like the SQL Server “bit” data type, which is a single bit designed for storing a boolean true/false (0/1) value. However, in MySQL it’s much more a bitfield — unlike SQL Server, you can have a bit(8) field, for example, which is eight bits long. And MySQL has a specific “boolean” type instead for storing booleans.
I’m guessing this is the root of what’s going on. Notice that what’s coming back for the mysql result is a string(1) — that’s a one-character long string, not an empty string, which would be string(0). If you look at the value of that single character:
…then it’s an ASCII 1!
So, I’d say what’s happening is probably, oddly, by design. The mysql extension is being very literal about interpreting the bitfield, and giving you a string encoding the actual bits that are stored in the field in MySQL, at the bit level. The mysqli extension is being a bit friendlier, perhaps, and converting the value into a string representation of the bits.
I’ll leave it to you to experiment with what happens if you grab a bit(8) set to 10101010 using mysql and mysqli…