What I\'m trying to do is load a texture into hardware from a single channel data array and use it\'s alpha channel to draw text onto an object. I am using opengl 4.
<
I think you swapped the "internal format" and "format" parameters of glTexImage2d(). That is, you told it that you want RGBA in the texture object, but only had RED in the file data rather than vice-versa.
Try to replace your call with the following:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, texture->x, texture->y, 0, GL_RGBA, GL_UNSIGNED_BYTE, reinterpret_cast(full_texture));