The variable $db actually contains information about the connection. You cannot insert a query into your database the way you are trying to 
You can use $db (in your case) in order to check whether the connection has been correctly established or not and then if everything works correctly you can user mysqli_query() to inject the query into your database.
You can do it like so:
    <?php
    if(isset($_POST['submit'])){ //You have to check if your submit button is pressed
       $username = $_POST["username"];
       $passwort = $_POST["passwort"];
       $mail = $_POST["mail"];
       $passwort2 = $_POST["passwort2"];
       $pass = sha1($passwort);
       $db = mysqli_connect("localhost", "phptest1", "o84XM5wxo65QBjkF", "phptest1");
       if(!$db){
          die('Connection could not be established! Check provided information');
       }
       if($passwort == $passwort2) {
          echo "Password is correct.Inserting query now";
          $query = "INSERT INTO user (Username, Mail, Password) VALUES ('$username', '$mail', '$pass')";
          $result = mysqli_query($db, $query); //keep $result for debugging purposes.
       } else {
        die("Password is not correct");
       } //no need for else if as there are only 2 conditions.
       if(!$result){ //check if query was successful.
          die('Query Error');
       }
       echo "Query Updated successfully";
    }
?>
This code is really simplistic and for testing purposes only.
I just wanted to show you the way you can send queries to your database. You better use other encryption techniques i.e. crypt() and of course functions like mysqli_real_escape_string() when retrieving data from users, in order to avoid potential injection attacks.
Check this post for more info about preventing injections.
Hope that helps.