This is your code modified to work. I replaced your circle with a plain sprite just for ease of testing the code.
The main issue is that you only ever created one sprite. So when you went through the array, you simply moved a single sprite around the screen, then synced it at the last position.
I've also replaced your 2 arrays with one typed array. This allows the numerous sprites you need to be saved alongside their coordinates.
SetWindowTitle( "test" )
SetWindowSize( 1024, 768, 0 )
type tSprite
spriteId as integer
x as float
y as float
endtype
// load a simple circular image
circle_spr = CreateSprite(0)
SetSpriteSize (circle_spr, 2.5, 2.5)
// create the array (couldnt work out how to insert both X and Y values into a type
// so had to split the arrays into two, clumsy i know
//pathArrayX as float[0]
//pathArrayY as float[0]
global arrSprite as tSprite[]
do
mx#=ScreenToWorldX(GetPointerX())
my#=ScreenToWorldY(GetPointerY())
// log the current mouse position into the array
if getpointerpressed()=1
//pathArrayX.insert(mx#)
//pathArrayY.insert(my#)
arrSprite.length = arrSprite.length + 1
id = arrSprite.length
arrSprite[id].spriteId = CloneSprite(circle_spr)
arrSprite[id].x = mx#
arrSprite[id].y = my#
endif
// for loop to dump out all the positions in the arrays
for k = 0 to arrSprite.length // no need to reference Y, it is hopefully the same size as the X array
SetSpritePositionByOffset (arrSprite[k].spriteId, arrSprite[k].x, arrSprite[k].y)
next k
Sync()
loop
Quidquid latine dictum sit, altum sonatur