For the standard way to tackle this, you need to open the texture back up in your graphics program and give it an alpha channel.
Then you need to make your own shader that applies that texture to a surface with transparency. There's a good example, and a short discussion of alpha/transparency, here:
Let me copy the example shader here to talk about it a little more:
That is almost just the very most basic shader, which only applies a texture to a surface, with a few twists.
// A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES
blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
blendFunc GL_DST_COLOR GL_ZERO
The lightmap stage of this shader is standard so let's ignore that.
"cull none" lets the surface be seen from either side, which is something you might want for a basically two-dimensional surface like a fence or a grate.
The shader stage that applies the pjgrate1.tga texture has an "alphaFunc GT0" instruction that is the magic for transparency. alphaFunc is described at the bottom of the page here: http://icculus.org/gtkradiant/docume...ch05/pg5_1.htm
If you say "alphaFunc GT0" then you are saying that your texture should be opaque only where its alpha channel is greater than 0. In your case, since you want the black areas of your texture to be transparent, this could be handy. When you create your texture's alpha channel you could just make it a copy of the one of texture's current red/green/blue channels. If your black areas are TRULY black, i.e. they have a 0 value in the channel you copied, then your alpha channel will end up being 0 in the places that you want to be transparent. Then you can use "alphaFunc GT0" in your shader.
(I'm sure there are lots of tutorials out there for making alpha channels using Photoshop, GIMP, paint.net, etc.)
The other interesting instruction there is "blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA". This is blending pjgrate1.tga over the current texture on the surface, according to its alpha channel. But since this is the first stage in the shader, there's not any "current texture" on the surface, and the alphaFunc is just going to make the zero-alpha spots of the surface transparent anyway. So this is a little odd.
In fact if you look in the base_floor.shader script in the final version of Quake 3, the final version of this particular shader just uses the standard "blendFunc GL_ONE GL_ZERO", which simply covers the surface with the texture.
Anyway, if you can make an appropriate alpha channel for your texture, then you can make a shader for your texture that is like this example. You may not want "surfaceparm metalsteps" of course, if your texture doesn't look metallic. You also probably want to use "blendFunc GL_ONE GL_ZERO" instead of "blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA".