Restrict a filter to a custom post type. Am I doing this right?

I think you’re looking for the “conditional” get_post_type.

In your case it would be:

function orderby_post_title_int( $orderby, $query ) {
    if ( 'chart' == get_post_type() ) {
       return '(wp_posts.post_title+0) ASC';
    }
    return $orderby;  
}

Or you could insert the conditional in your original function, which you know was working?

(Note if this is a custom post type archive, you’d use the is_post_type_archive() conditional instead.)