Can I wrap an unordered list inside a shortcode?

You can capture the list in a variable, rather than echo it:

$list="<ul class="strong">
        <li>" . get_field( 'highlights_list_item#1' ) . '</li>
        <li>' . get_field( 'highlights_list_item#2' ) . '</li>
    </ul>';

echo do_shortcode( '[one_half]' . $list . '[/one_half]' );

Note the use of get_field() rather than the_field(), which returns a custom field value as opposed to displaying it.