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.