I think we need to add in --with-id
From the nose docs: 
Note: If you expect to use --failed regularly, it’s a good idea to always run run using the --with-id option. This will ensure that an id file is always created, allowing you to add --failed to the command line as soon as you have failing tests. Otherwise, your first run using --failed will (perhaps surprisingly) run all tests, because there won’t be an id file containing the record of failed tests from your previous run.