Agrega a tu tabla trabajador un campo
estado, que tome un valor de 0 si está ausente o 1 si está presente. Ya sólo bastaría con consultar este dato. Si está en 0, quiere decir que el trabajador está ausente y por lo tanto la marca es de entrada. En ese momento actualizas la base de datos y le asignas a este campo un valor de 1. Y visceversa. Si ya está en 1, entonces el trabajador está presente y la marca es de salida. Actualizas y le cambias a 0.