If you have verified the engine (LS1) spins (turns over) freely, then the problem is most likely the solenoid or the motor itself. With that, it could be:
- There is a big flat copper washer at the back of the solenoid which makes contact between the main power source and the starter motor main lead. The lead is what pops out of the side of the starter motor and connect to the solenoid. If the copper washer is bad, it might not be transmitting power to the starter motor, which means it wouldn't spit ... yet the starter gear would still engage the ring gear on the flexplate/flywheel.
- The brushes on the starter might be bad or worn out. If so, it won't allow the start motor itself to spin.
In either case, if you bench test the starter, you could put power directly to the starter motor connection which I mentioned comes out the side. If you have the starter body grounded then hit the lead with power to see if the motor will spin. If the motor spins, it's the solenoid. If the motor doesn't spin, it's the motor itself. The easiest way to provide power to this is by using a pair of jumper cables.
NOTE: If the starter orientation is just right on the vehicle, you can possibly use a screwdriver and jump between the two large terminals. This would be the same as the bench test I mentioned above, just without taking the starter down. If you go this route, be careful not to arc the screwdriver over to a ground source ... you'll see a lot of sparks if you do and you could possibly damage electronics in your vehicle.
Below is an image of the starter for your LS1. The blue arrow points to the post which provides power to the starter motor.