Well, you get user data in global $current_user variable only when a user is online or in other words, this is the data of currently logged user.
I think the problem is not with the hook or data, but with your insert code. It should be like this:
// You get two parameters, 2nd param is the user object
function crear_bd_empleados( $user_login, $user ) {
global $wpdb;
$tabla_empleado = $wpdb->prefix.'myUser';
$current_user = $user;
$usuario = $current_user->user_login;
$alias = $current_user->display_name;
$nombre = $current_user->user_firstname.$current_user->user_lastname;
$correo = $current_user->user_email;
$wpdb->insert(
$tabla_empleado,
array(
'usuario' => $usuario,
'alias' => $alias,
'nombre' => $nombre,
'correo' => $correo,
),
// You need to provide insert value types, %s = string in this case
array('%s','%s','%s','%s')
);
}
// Register for wp_login with 2 params and priority = 10
add_action('wp_login', 'crear_bd_empleados', 10, 2);
As per the wiki: https://codex.wordpress.org/Plugin_API/Action_Reference/wp_login At wp_login hook, a user is logged in.
EDIT: wp_login sends two parameters, you can use 2nd parameter to get user data, no need to query again.