The OP's code looks correct to me, assuming that buffers is a valid buffer object name created via glGenBuffers (if that's not the case then there's the problem). An outside possibility is a driver bug causing problems with a GL_INT vertex type; maybe try changing that to floats and see if the problem reproduces? Another test might be to use:
That's functionally equivalent tothe glDrawElements call but - just using it as a test - may help to shed some light on what's happening here.
glGenBuffers I use is correct, not really sure how anyone can screw that up. ;)
However, using your little example with glArrayElement *does* work.
So, I guess I am chasing a driver issue of some kind... though, I need to get back to my main machine to test, instead of this crappy laptop that has intel HD3000 in it.