No estoy seguro porque esto habría que probarlo compilando código, pero me resulta un poco extraña esta parte del código:
String a = jTextField1.getText().toString();
String b = jTextField2.getText().toString();
String c = jTextField3.getText().toString();
String d = jTextField4.getText().toString();
String e = jTextField5.getText().toString();
String f = jTextField6.getText().toString();
st.executeUpdate("INSERT INTO pacientes (nombre, ci, fechanac, ingreso, ultima, proxima) VALUES ("jTextField1.getText().toString()", "jTextField2.getText().toString()", "jTextField3.getText().toString()", "jTextField4.getText().toString()", "jTextField5.getText().toString()", "jTextField6.getText().toString()")");
Al método executeUpdate le probaría a pasar esto:
st.executeUpdate("INSERT INTO pacientes (nombre, ci, fechanac, ingreso, ultima, proxima) VALUES ('"+jTextField1.getText().toString()+"', '"+jTextField2.getText().toString()+"', '"+jTextField3.getText().toString()+"', '"jTextField4.getText().toString()+"', '"+jTextField5.getText().toString()+"', '"jTextField6.getText().toString()+"')");
Cada campo a insertar, entre apóstrofes, y cada string entre comillas; para que interprete la invocación del método bien como un string, precederlo y ponerle después el símbolo +. Puedes probar a ver si va.