what is the difference between these two types of widget form method

It is just a PHP coding practice difference and you can combine both. The use of ?: is called ternary operator and it is like a if/else shorthand. This line:

 $title = isset( $instance['title'] ) ? $instance['title'] : '';

It is like:

if( isset( $instance['title'] ) ) {
    $title = isset( $instance['title'] );
} else {
    $title="";
}

If you see core widgets, they usually use the ternary operator, but is just a coding preference. For example, you can see this code in Archives widget:

$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Archives' ) : $instance['title'], $instance, $this->id_base );

Or this one in Calendar widget:

$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );

Applying the widget_title it is more important to me than using or not ternary operators; you shouldn’t forget it.