Yeah I got the ball well formed after some fiddling, I think you left too many remnants of the two different code methods and it is adding to confusion. Plus I wonder if you are making the best gl choices from all the options there are but I am biased with my regular 2D coding style with QB64. Frankly I was overwhelmed by all the different command choices of gl that do basically the same thing.
I would like to see it built from scratch with just the ball bouncing off walls in the simplest, least lines as possible form with helpfully named variables. Then add one paddle to start hitting ball.