python - how to select a vertex in a circle
Have to select in object mode

To select mesh vertices using me.vertices[i].select need to set in object mode, and toggle into edit mode.

When a new primitive is added all the geometry is selected by default. 

Here the mesh is added in object mode (without toggling into edit mode)  all geometry is deselected (brute force) , vertex index 0 selected, and then toggle into edit mode.

import bpy
context = bpy.context

bpy.ops.mesh.primitive_circle_add(vertices=7, radius=1, enter_editmode=False, location=(0, 0, 0))
ob = context.object
me = ob.data
for g in me.vertices[:] + me.edges[:] + me.polygons[:]:
    g.select = False

me.vertices[0].select = True

bpy.ops.object.mode_set(mode='EDIT')


Please note. When an object is created with an operator the object and mesh are given default names, "Circle" in this case. If another is added then the names may or may not be "Circle" if there is another with same name.  

The newly created object will always be ob = context.object and its data part, mesh in this case ob.data.  (suppose I'm saying, pays to get out of the habit of bpy.data.objects["What the first one's name is"])

or use bmesh, and load in the edit mesh and fix. (as answered by Leander while writing this), however this uses bmesh in conjunction with the add primitive operator.

import bpy
context = bpy.context
import bmesh
bpy.ops.mesh.primitive_circle_add(vertices=7, radius=1, enter_editmode=True, location=(0, 0, 0))
ob = context.edit_object
me = ob.data
bm = bmesh.from_edit_mesh(me)
bm.select_flush(False)
for v in bm.verts:
    v.select = not v.index
bmesh.update_edit_mesh(me)