O banco de dados só será criado quando você realmente usar o contexto.
Se você substituiu o método Seed em seu inicializador da seguinte maneira:
protected override void Seed(MyContext context){...}
O código Seed só será executado quando você usar uma instância de MyContext.
É por isso que funciona quando você usa
var ctx = new MyContext();
ctx.Database.Initialize(true);
Você sempre pode forçá-lo a criar usando seu contexto no método Application_Start() em Global.asax.cs como:
System.Data.Entity.Database.SetInitializer(new MyInitializer());
MyContext db = new MyContext();
db.Database.Initialize(true);
//or even something like db.Users.Count();
Ou ele será criado mais tarde quando você usar seu contexto. Pode parecer que parou de funcionar porque você removeu algum código que usaria o contexto na inicialização do aplicativo.