Why is a 100% mix node not acting as the identity?
From this bug report:

When the input image file is not available, what happens is that the mix node will still try to use the resolution of the first input as the resolution of the output, which doesn't work well because the non-existent file specifies a (0,0) resolution - thus the black image (there are simply no pixels that would be mixed with the second input).
The mix node cannot detect cleanly whether the input buffer is valid, and the image node cannot guess a meaningful resolution ... It seems to work as expected if i choose a valid image file.
I would like to redesign the whole resolution handling in the compositor. Pixels are just not a very reliable and intuitive way of specifying size and transformation. When this happens we can hopefully avoid cases like this.

For context, this was reported while attempting to do this.
So essentially, the mix node (rather unexpectedly) doesn't know the size of the image it's getting from the blur node. As such, it treats it like the input from the blur node is completely transparent (or 0x0 pixels large).
One workaround is to provide a resolution, e.g. with a mask node: