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.