Try this:
$(document).on('change', 'select[name="merchant-category"]',function() { 
    console.log('called');
});
By using the .on( syntax with a selector, you are able to catch dynamically created elements as well.
Regardless $('select[name="merchant-category"]') should return multiple elements, not just the first. If it isn't, double-check for typos in your code.
http://jsfiddle.net/vysft3go/
$(function() {
    
    $(document).on('change', 'select[name="merchant-category"]', function() {
    
        var notification = $('<p>').text($(this).attr('id') + ' changed!');
        
        $('#updates').append(notification);
        
    });
    
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<form>
    
    <select name="merchant-category" id="select1">
        <option>1</option>
        <option>2</option>
    </select>
    
    <select name="merchant-category" id="select2">
        <option>1</option>
        <option>2</option>
    </select>
    
</form>
<div id="updates"></div>