My insert statement looks like this:
INSERT INTO foo (bar) VALUES (\'\');
The bar field was created like so:
bar
bar I
Why should it be a NULL? You're providing a value that has an integer representation: empty strings convert to INT 0.
INT
0
Only if you didn't provide any value would the default take over.