What about VARBINARY? That can be up to 64KB in size.
But I don't see what is wrong with VARCHAR or even TEXT.
So what if the data is stored as a string?
So you read that string back into JS and instead of
if(grid[player.position] == 1)
you just use
if( grid.charAt(player.position) == "1")
Or, for that matter, for all browsers except some ancient ones, you *can* treat a string as an array of characters, so you would just use
if(grid[player.position] == "1")
Or, as a minor hack, you could do:
var grid = ...string you get from the database ...
grid = grid.split(""); // converts the string into an array!