The validator you link to validates the JSON string existing of a mere
true as invalid according to RFC 4627, which dictates that the root of a JSON string is to be an array or object:
A JSON text is a serialized object or array.
JSON-text = object / array
An unwrapped value such as
42 is not JSON according to that RFC.
The other RFC it can validate against, RFC 7159, deems the above examples valid as it does not constrain a JSON text to objects or arrays, but also allows values:
A JSON value MUST be an object, array, number, or string, or one of the following three literal names:
false null true
And because the former (RFC 4627) is obsoleted by the latter (RFC 7159),
true is a valid JSON string.