Custom-Posttype & Custom Taxonomy WP_Query

The taxonomy, field and terms in tax_query should be two array-level deep instead of one. Quoted from the WP_Query page:

Important Note: tax_query takes an array of tax query arguments arrays
(it takes an array of arrays) – you can see this in the second example
below. This construct allows you to query multiple taxonomies by using
the relation parameter in the first (outer) array to describe the
boolean relationship between the taxonomy queries.

So, your arguments shoud be like:

$args = array(
    'post_type' => 'contents',
    'tax_query' => array(
        array(
               'taxonomy' => 'content-category',
               'field' => 'id',
               'terms' => array(5,26,28)
        )
    ),
        'meta_key' => 'fs16'
);

You may omit 'post_status' => 'publish' since it’s the default value used anyway.