Why doesnt this query work? (Custom Taxonomy)

you mixed the query with the register function, try this:

function taxonomy_init() {
    // create a new taxonomy
    register_taxonomy(
        'country',
        'post',
            array(
                'label' => __('Countries (Labels)'),
                'rewrite' => array('slug' => 'location')
            )
    );
}
add_action( 'init', 'taxonomy_init' );

the in your query use

$my_query = array(
                'posts_per_page' => 10,
                'tax_query' => array(
                        array(
                            'taxonomy' => 'country',
                            'field' => 'id',                            
                            'terms' => array(4)
                        )
                ));

since you are querying only one term you don’t need to order by term_id.

if you are trying to achive something else the please explain a bit more.