Exclude posts with custom taxonomy

Make sure to reread the tax_query documentation. If you change it to this, I think it should work:

'tax_query' => array(
    array(
        'taxonomy' => 'news',
        'field'    => 'id',
        'terms'    => 51,
        operator => 'NOT IN'
    )
)

Depending on your setup, you may also want to specify the include_children argument.