Query 1 taxonomy term, exclude another

I guess its because you are trying two conditions on one taxonomy, you can allways create a custom sql query, something like this:

$querystr = "
SELECT * 
FROM $wpdb->posts
LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
LEFT JOIN $wpdb->terms ON($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id)
WHERE $wpdb->posts.post_type="resource" 
AND $wpdb->posts.post_status="publish"
AND $wpdb->term_taxonomy.taxonomy = 'resource-type'
AND $wpdb->terms.slug = 'testimonies'
AND $wpdb->terms.slug NOT IN ('audio')
ORDER BY $wpdb->posts.post_date DESC
 ";

$pageposts = $wpdb->get_results($querystr, OBJECT);

or you can query just by one term and exclude by has_term() inside the loop something like this:

if (!has_term('audio','resource-type',$post->ID)){
  //post without audio
}else{
  //post with audio (skip or whatever)
}