I'm not sure exactly what you mean, but the code you provided doesn't really work the way you described. There is an error in the code for one,
turn object player left,1 and
turn object player right,1 should be
turn object left player,1 and
turn object right player,1. The camera wouldn't rotate the way you described, both how it was supposed to, and how you didn't want it to. Maybe there is something in the rest of your code that is causing it to do that.
Anyway, I wrote a little demo to show you how it can be done without problems. Instead of using the turn object commands you should just increase and decrease an angle value to rotate your object. Then just use that angle to position your camera along with your player coordinates. Here is a demo showing you how it works:
sync on
sync rate 60
player = 1
ground = 2
make object plain ground,100,100
rotate object ground,90,0,0
position object ground,0,-10,0
color object ground,rgb(0,0,0)
make object cube player,10
angle# = object angle y(player)
ox#=object position x(player)
oy#=object position y(player)
oz#=object position z(player)
position camera ox#,100,oz#
point camera ox#,oy#,oz#
yrotate camera angle#
do
if upkey()=1 then move object player,1
if downkey()=1 then move object player,-1
if leftkey()=1 then angle# = wrapvalue(angle# - 1)
if rightkey()=1 then angle# = wrapvalue(angle# + 1)
ox#=object position x(player)
oy#=object position y(player)
oz#=object position z(player)
yrotate object player,angle#
position camera ox#,100,oz#
yrotate camera angle#
sync
loop