Shortcode custom query not passing value

You haven’t defined $atts, so your function isn’t receiving any of the attributes passed by the user. This isn’t sufficient:

$atts = shortcode_atts($defaults, $atts);

That just combines $atts and $defaults into $atts, but the original $atts hasn’t been defined. You need to accept $atts as the first argument passed to your function:

function clients_shortcode( $atts ) {