i will give an example with uncompress:

SELECT UNCOMPRESS('abc')
return-> NULL

SHOW WARNINGS
"Level" "Code" "Message"
"Warning" "1259" "ZLIB: Dados de entrada está corrupto"

return NULL+warning

but that's not COLUMN_JSON
UNCOMPRESS receive a wrong input
COLUMN_JSON return a "wrong" output 

with a binary data at dynamic column, json output "should not" be expected by some decoders, but maybe it work with others decoders

the point is... what should we return? NULL, 'wrong' output, or NULL+warning, or wrong output + warning?

check json specs:
http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf

"JSON does not support cyclic graphs, at least not directly. JSON is not indicated for applications requiring binary data."

but i don't see why many parts at google / forum / etc, tell that it *don't* suport binary, if it's a javascript representation (not 100%), we should consider that node.js can't handle binary data?
being practical... what decoders should be used to test COLUMN_JSON? maybe we need just a bit of documentation at COLUMN_JSON, instead of changing function source code, now i see that's not 100% clear