Help using an array in ‘exclude’ key of another array

The problem is that you use wrong ACF function.

get_field_object returns the settings of a specific field. Each field contains many settings such as a label, name and type. This function can be used to load these settings as an array along with the field’s value.

So get_field_object('icon')['ID']) doesn’t return the ID of image attachment, but ID of that ACF field.

What you want to use is:

$var = get_children(array(
    'exclude' => array(
        get_post_thumbnail_id(),
        get_field('icon')
    )
));

If your field returns the ID of selected image, or

$image = get_field('icon');
$var = get_children(array(
    'exclude' => array(
        get_post_thumbnail_id(),
        $image['ID']
    )
));

if it returns an array.

More on get_field for Image field