An easy way of doing this is to use the Blend If function in the layer's Blending Options.
Double-click the layer (not the name), and you will enter that layer's Layer Style.
Focus on the Blend If options in the bottom. This enables you to make any layer transparent in specific lightness ranges (Gray) or in each of the Red, Green and Blue channels.
For this we only need to change the settings for Gray. If we move the black slider a tiny bit to the right and set the lower clip limit to 1 we actually remove most of the black, but the edge is too harsh - there is no transition.
Then we can alt-click the right side of the slider to split it in two and then drag it to create the transition we want.
As you might imagine, this tool can be very helpful for lots of stuff. It can also be used on adjustment layers so it only affects certain ranges or it can be used to mix the dark part of an image with the light part of another etc.
Edit: A variation
Create an "indented" Black & White adjustment layer and choose the preset Neutral density. Set the blend mode to Difference.
Add an "indented" Invert adjustment layer on top. Now we have removed all black and neutral colors from the image.
Now you can use Blend If to remove the whites and maybe get a result closer to what you want.