emulate bool Custom Property
ID properties can't be displayed as checkboxes:

import bpy

def draw_func(self, context):
    layout = self.layout
    ob = context.object

    try:
        ob["myBool"]
    except (AttributeError, KeyError):
        layout.label('No ["myBool"] property.')
    else:
        layout.prop(ob, '["myBool"]', toggle=True, slider=False)

def register():
    bpy.types.OBJECT_PT_custom_props.prepend(draw_func)

def unregister():
    bpy.types.OBJECT_PT_custom_props.remove(draw_func)

if __name__ == "__main__":
    register()


They will always display as integer or floating point numbers, and also stored this way.

You need to use bpy.props.BoolProperty() for checkboxes.