I am trying to write a program using OpenGL and I have a couple questions about efficiency. First, what is the difference (in efficiency and memory) between drawing one quad and drawing two smaller quads, each half the size of the large quad? Also, is it better to draw everything or should I use if-then statements to block drawing shapes that are off the screen? What difference do these make regarding speed, memory, and anything else that could be a potential problem?
There isn't going to be much of a difference between drawing a single polygon and 2 smaller polygons, unless someone has extensive knowledge of how openGL handles them your guess is as good as anyone elses. You can probably draw 1000 polygons and not notice a performance hit. You can also pick a target machine and do some testing yourself to see what kind of limits your target machine has.
I know there's a technique using bound sphere's which is some simple calculations to determine if a sphere is visible on a screen or not. That is if you are using a perspective view, you construct a frustum matching the view and than test each side to see if it's with the bounds of it. It's a well known technique which I would imagine most games use, so you shouldn't have a problem finding it.
Another technique is level of detail, in which you use a lower poly model the further away it is from the "eye".
Really it all depends on what you are trying to do. If you are trying to make a game than you might want to buy and read a book which goes into detail all the techniques games use to make the game as efficient as possible.
You'd probably be better of posting on a website dedicated to openGL (opengl.org).
OpenGL (on decent hardware) is VERY fast. I'm not sure if we have a unit of time small enough to measure the time difference between drawing 1 big quad and 2 smaller quads. As for drawing offscreen, you should at least try to only draw what will actually be visible, but don't worry about trying to make it absolutely perfect, the time saved by not rendering a few quads will probably be less than the time spent trying to reduce the number of rendered quads to an absolute minimum. There shouldn't be any memory issues either.