Shortcode Attributes – post__not_in array

With this part:

'post__not_in' => array($custom_atts['hide'])

you’re actually running:

'post__not_in' => array( "7043,7128" )

with [customposts hide="7043,7128"].

Note that post__not_in expects an array of numbers, not an array with a single CSV element.

Have a look at e.g. wp_parse_id_list() and don’t forget to validate the input, to e.g. avoid empty input or a one with non integers.

PS: This can potentially be eat up your resources for large number of posts:

'posts_per_page' => '-1'

Consider adding a limit there instead.