I'm trying to retrieve all the layouts for a given account.
/app/models/account.js
import DS from 'ember-data';
export default DS.Model.extend({
  companyName: DS.attr('string'),
  layouts: DS.hasMany('layout')
});
/app/models/layout.js
import DS from 'ember-data';
export default DS.Model.extend({
  name: DS.attr('string'),
  account: DS.belongsTo('account', { async: true })
});
/app/routes/layouts.js
import Ember from 'ember';
export default Ember.Route.extend({
  model: function() {
    return Ember.RSVP.hash({
      layouts: this.store.filter('layout', { account_id: 1 }, function(layout) {
        console.log(layout.get('account').content.id);
        return layout.get('account').content.id === 1;
      })
    });
  }
});
The console.log line is outputting the ID that I'm expecting (1). In Ember inspector I can see 5 layout models and under 'Belongs To' I can see: account : <DS.PromiseObject:ember960>. Clicking that brings up content : <batmics@model:account::ember600:1> and clicking that brings up the properties, including the correct ID.
But in my templates layouts is empty... and I've no idea why. 
Incidentally, layouts: this.store.find('layout', { account_id: 1 }) works, but I need it to use the filter so that it's an active array.
                        
Ember Data works with all its IDs as strings.
Changing your check to
=== '1'should get this going for you.