You slightly misunderstand what the precision setting on an integer does in MySQL...
If you declare something to be tinyint(1), you can still put something over 1 character in length into it.
To quote the MySQL manual:
11.2. Numeric Types:
Another extension is supported by MySQL for optionally specifying the display width of an integer value in parentheses following the base keyword for the type (for example, INT(4)). This optional display width specification is used to left-pad the display of values having a width less than the width specified for the column.
So, that (1) doesn't do what you think it does. If you need constraints, you're using the wrong database...