Unfortunately I don't think this is possible currently. In theory you could null out 0s if .if(eq,0,null), though that would depends on you knowing for sure that there are no 0 years, and rather a 0 represents an excluded year.
The crux of the issue is that the aggregate() function is treating null as 0. You'd need to write a new function that doesn't do that.
You could also consider filing a bug, it seems like aggregate shouldn't treat null as 0