Operators: Updating a CollectionProperty using the exec() method
The type parameter of CollectionProperty is expecting a subclass of bpy.types.PropertyGroup. So you would need something like:

class MyBool(bpy.types.PropertyGroup):
    bool = BoolProperty()


Then in your operator, you use that type in your CollectionProperty:

my_list = CollectionProperty(type=MyBool)


You add to your collection by using add():

mybool = self.my_list.add()


...which gives you an instance of the PropertyGroup and the properties it contains. Here is an example that makes a list of booleans based on the selected vertices in the active object and prints the list:

import bpy
from bpy.props import CollectionProperty, BoolProperty

class MyBool(bpy.types.PropertyGroup):
    bool = BoolProperty()

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    my_list = CollectionProperty(type=MyBool)

    def execute(self, context):
        obj = context.active_object
        for vert in obj.data.vertices:
            mybool = self.my_list.add()
            mybool.bool = vert.select
        for b in self.my_list:
            print(b.bool)
        return {'FINISHED'}

def register():
    bpy.utils.register_module(__name__)

def unregister():
    bpy.utils.unregister_module(__name__)

register()